"use strict";(self.webpackChunkdocs_v_2=self.webpackChunkdocs_v_2||[]).push([[112],{65741:(t,e,a)=>{a.r(e),a.d(e,{assets:()=>h,contentTitle:()=>s,default:()=>c,frontMatter:()=>r,metadata:()=>l,toc:()=>p});var n=a(83117),o=(a(67294),a(3905)),i=a(51402);const r={title:"Exploring Data in Superset",hide_title:!0,sidebar_position:2,version:1},s=void 0,l={unversionedId:"creating-charts-dashboards/exploring-data",id:"creating-charts-dashboards/exploring-data",title:"Exploring Data in Superset",description:"Exploring Data in Superset",source:"@site/docs/creating-charts-dashboards/exploring-data.mdx",sourceDirName:"creating-charts-dashboards",slug:"/creating-charts-dashboards/exploring-data",permalink:"/docs/creating-charts-dashboards/exploring-data",draft:!1,editUrl:"https://github.com/apache/superset/tree/master/docs/docs/creating-charts-dashboards/exploring-data.mdx",tags:[],version:"current",sidebarPosition:2,frontMatter:{title:"Exploring Data in Superset",hide_title:!0,sidebar_position:2,version:1},sidebar:"tutorialSidebar",previous:{title:"Creating Your First Dashboard",permalink:"/docs/creating-charts-dashboards/creating-your-first-dashboard"},next:{title:"Installing Database Drivers",permalink:"/docs/databases/installing-database-drivers"}},h={},p=[{value:"Exploring Data in Superset",id:"exploring-data-in-superset",level:2},{value:"Enabling Data Upload Functionality",id:"enabling-data-upload-functionality",level:3},{value:"Loading CSV Data",id:"loading-csv-data",level:3},{value:"Table Visualization",id:"table-visualization",level:3},{value:"Dashboard Basics",id:"dashboard-basics",level:3},{value:"Pivot Table",id:"pivot-table",level:3},{value:"Line Chart",id:"line-chart",level:3},{value:"Markup",id:"markup",level:3},{value:"Filter Box",id:"filter-box",level:3},{value:"Publishing Your Dashboard",id:"publishing-your-dashboard",level:3},{value:"Annotations",id:"annotations",level:3},{value:"Advanced Analytics",id:"advanced-analytics",level:3},{value:"Rolling Mean",id:"rolling-mean",level:3},{value:"Time Comparison",id:"time-comparison",level:3},{value:"Resampling the data",id:"resampling-the-data",level:3}],d={toc:p},u="wrapper";function c(t){let{components:e,...a}=t;return(0,o.kt)(u,(0,n.Z)({},d,a,{components:e,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"exploring-data-in-superset"},"Exploring Data in Superset"),(0,o.kt)("p",null,"In this tutorial, we will introduce key concepts in Apache Superset through the exploration of a\nreal dataset which contains the flights made by employees of a UK-based organization in 2011. The\nfollowing information about each flight is given:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"The traveller\u2019s department. For the purposes of this tutorial the departments have been renamed\nOrange, Yellow and Purple."),(0,o.kt)("li",{parentName:"ul"},"The cost of the ticket."),(0,o.kt)("li",{parentName:"ul"},"The travel class (Economy, Premium Economy, Business and First Class)."),(0,o.kt)("li",{parentName:"ul"},"Whether the ticket was a single or return."),(0,o.kt)("li",{parentName:"ul"},"The date of travel."),(0,o.kt)("li",{parentName:"ul"},"Information about the origin and destination."),(0,o.kt)("li",{parentName:"ul"},"The distance between the origin and destination, in kilometers (km).")),(0,o.kt)("h3",{id:"enabling-data-upload-functionality"},"Enabling Data Upload Functionality"),(0,o.kt)("p",null,"You may need to enable the functionality to upload a CSV or Excel file to your database. The following section\nexplains how to enable this functionality for the examples database."),(0,o.kt)("p",null,"In the top menu, select ",(0,o.kt)("strong",{parentName:"p"},"Data \u2023 Databases"),". Find the ",(0,o.kt)("strong",{parentName:"p"},"examples")," database in the list and\nselect the ",(0,o.kt)("strong",{parentName:"p"},"Edit")," button."),(0,o.kt)("img",{src:(0,i.Z)("/img/tutorial/edit-record.png")}),(0,o.kt)("p",null,"In the resulting modal window, switch to the ",(0,o.kt)("strong",{parentName:"p"},"Extra")," tab and\ntick the checkbox for ",(0,o.kt)("strong",{parentName:"p"},"Allow Data Upload"),". End by clicking the ",(0,o.kt)("strong",{parentName:"p"},"Save")," button."),(0,o.kt)("img",{src:(0,i.Z)("/img/tutorial/add-data-upload.png")}),(0,o.kt)("h3",{id:"loading-csv-data"},"Loading CSV Data"),(0,o.kt)("p",null,"Download the CSV dataset to your computer from\n",(0,o.kt)("a",{parentName:"p",href:"https://raw.githubusercontent.com/apache-superset/examples-data/master/tutorial_flights.csv"},"GitHub"),".\nIn the Superset menu, select ",(0,o.kt)("strong",{parentName:"p"},"Data \u2023 Upload a CSV"),"."),(0,o.kt)("img",{src:(0,i.Z)("/img/tutorial/upload_a_csv.png")}),(0,o.kt)("p",null,"Then, enter the ",(0,o.kt)("strong",{parentName:"p"},"Table Name")," as ",(0,o.kt)("em",{parentName:"p"},"tutorial_flights")," and select the CSV file from your computer."),(0,o.kt)("img",{src:(0,i.Z)("/img/tutorial/csv_to_database_configuration.png")}),(0,o.kt)("p",null,"Next enter the text ",(0,o.kt)("em",{parentName:"p"},"Travel Date")," into the ",(0,o.kt)("strong",{parentName:"p"},"Parse Dates")," field."),(0,o.kt)("img",{src:(0,i.Z)("/img/tutorial/parse_dates_column.png")}),(0,o.kt)("p",null,"Leaving all the other options in their default settings, select ",(0,o.kt)("strong",{parentName:"p"},"Save")," at the bottom of the page."),(0,o.kt)("h3",{id:"table-visualization"},"Table Visualization"),(0,o.kt)("p",null,"You should now see ",(0,o.kt)("em",{parentName:"p"},"tutorial_flights")," as a dataset in the ",(0,o.kt)("strong",{parentName:"p"},"Datasets")," tab. Click on the entry to\nlaunch an Explore workflow using this dataset."),(0,o.kt)("p",null,"In this section, we'll create a table visualization\nto show the number of flights and cost per travel class."),(0,o.kt)("p",null,"By default, Apache Superset only shows the last week of data. In our example, we want to visualize all\nof the data in the dataset. Click the ",(0,o.kt)("strong",{parentName:"p"},"Time \u2023 Time Range")," section and change\nthe ",(0,o.kt)("strong",{parentName:"p"},"Range Type")," to ",(0,o.kt)("strong",{parentName:"p"},"No Filter"),"."),(0,o.kt)("img",{src:(0,i.Z)("/img/tutorial/no_filter_on_time_filter.png")}),(0,o.kt)("p",null,"Click ",(0,o.kt)("strong",{parentName:"p"},"Apply")," to save."),(0,o.kt)("p",null,"Now, we want to specify the rows in our table by using the ",(0,o.kt)("strong",{parentName:"p"},"Group by")," option. Since in this\nexample, we want to understand different Travel Classes, we select ",(0,o.kt)("strong",{parentName:"p"},"Travel Class")," in this menu."),(0,o.kt)("p",null,"Next, we can specify the metrics we would like to see in our table with the ",(0,o.kt)("strong",{parentName:"p"},"Metrics")," option."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"COUNT(*)"),", which represents the number of rows in the table\n(in this case, quantity of flights in each Travel Class)"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"SUM(Cost)"),", which represents the total cost spent by each Travel Class")),(0,o.kt)("img",{src:(0,i.Z)("/img/tutorial/sum_cost_column.png")}),(0,o.kt)("p",null,"Finally, select ",(0,o.kt)("strong",{parentName:"p"},"Run Query")," to see the results of the table."),(0,o.kt)("img",{src:(0,i.Z)("/img/tutorial/tutorial_table.png")}),(0,o.kt)("p",null,"To save the visualization, click on ",(0,o.kt)("strong",{parentName:"p"},"Save")," in the top left of the screen. In the following modal,"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Select the ",(0,o.kt)("strong",{parentName:"li"},"Save as"),"\noption and enter the chart name as Tutorial Table (you will be able to find it again through the\n",(0,o.kt)("strong",{parentName:"li"},"Charts")," screen, accessible in the top menu)."),(0,o.kt)("li",{parentName:"ul"},"Select ",(0,o.kt)("strong",{parentName:"li"},"Add To Dashboard")," and enter\nTutorial Dashboard. Finally, select ",(0,o.kt)("strong",{parentName:"li"},"Save & Go To Dashboard"),".")),(0,o.kt)("img",{src:(0,i.Z)("/img/tutorial/save_tutorial_table.png")}),(0,o.kt)("h3",{id:"dashboard-basics"},"Dashboard Basics"),(0,o.kt)("p",null,"Next, we are going to explore the dashboard interface. If you\u2019ve followed the previous section, you\nshould already have the dashboard open. Otherwise, you can navigate to the dashboard by selecting\nDashboards on the top menu, then Tutorial dashboard from the list of dashboards."),(0,o.kt)("p",null,"On this dashboard you should see the table you created in the previous section. Select ",(0,o.kt)("strong",{parentName:"p"},"Edit\ndashboard")," and then hover over the table. By selecting the bottom right hand corner of the table\n(the cursor will change too), you can resize it by dragging and dropping."),(0,o.kt)("img",{src:(0,i.Z)("/img/tutorial/resize_tutorial_table_on_dashboard.png")}),(0,o.kt)("p",null,"Finally, save your changes by selecting Save changes in the top right."),(0,o.kt)("h3",{id:"pivot-table"},"Pivot Table"),(0,o.kt)("p",null,"In this section, we will extend our analysis using a more complex visualization, Pivot Table. By the\nend of this section, you will have created a table that shows the monthly spend on flights for the\nfirst six months, by department, by travel class."),(0,o.kt)("p",null,"Create a new chart by selecting ",(0,o.kt)("strong",{parentName:"p"},"+ \u2023 Chart")," from the top right corner. Choose\ntutorial_flights again as a datasource, then click on the visualization type to get to the\nvisualization menu. Select the ",(0,o.kt)("strong",{parentName:"p"},"Pivot Table")," visualization (you can filter by entering text in the\nsearch box) and then ",(0,o.kt)("strong",{parentName:"p"},"Create New Chart"),"."),(0,o.kt)("img",{src:(0,i.Z)("/img/tutorial/create_pivot.png")}),(0,o.kt)("p",null,"In the ",(0,o.kt)("strong",{parentName:"p"},"Time")," section, keep the Time Column as Travel Date (this is selected automatically as we\nonly have one time column in our dataset). Then select Time Grain to be month as having daily data\nwould be too granular to see patterns from. Then select the time range to be the first six months of\n2011 by click on Last week in the Time Range section, then in Custom selecting a Start / end of 1st\nJanuary 2011 and 30th June 2011 respectively by either entering directly the dates or using the\ncalendar widget (by selecting the month name and then the year, you can move more quickly to far\naway dates)."),(0,o.kt)("img",{src:(0,i.Z)("/img/tutorial/select_dates_pivot_table.png")}),(0,o.kt)("p",null,"Next, within the ",(0,o.kt)("strong",{parentName:"p"},"Query")," section, remove the default COUNT(","*",") and add Cost, keeping the default\nSUM aggregate. Note that Apache Superset will indicate the type of the metric by the symbol on the\nleft hand column of the list (ABC for string, # for number, a clock face for time, etc.)."),(0,o.kt)("p",null,"In ",(0,o.kt)("strong",{parentName:"p"},"Group by")," select ",(0,o.kt)("strong",{parentName:"p"},"Time"),": this will automatically use the Time Column and Time Grain\nselections we defined in the Time section."),(0,o.kt)("p",null,"Within ",(0,o.kt)("strong",{parentName:"p"},"Columns"),", select first Department and then Travel Class. All set \u2013 let\u2019s ",(0,o.kt)("strong",{parentName:"p"},"Run Query")," to\nsee some data!"),(0,o.kt)("img",{src:(0,i.Z)("/img/tutorial/tutorial_pivot_table.png")}),(0,o.kt)("p",null,"You should see months in the rows and Department and Travel Class in the columns. Publish this chart\nto your existing Tutorial Dashboard you created earlier."),(0,o.kt)("h3",{id:"line-chart"},"Line Chart"),(0,o.kt)("p",null,"In this section, we are going to create a line chart to understand the average price of a ticket by\nmonth across the entire dataset."),(0,o.kt)("p",null,"In the Time section, as before, keep the Time Column as Travel Date and Time Grain as month but this\ntime for the Time range select No filter as we want to look at entire dataset."),(0,o.kt)("p",null,"Within Metrics, remove the default ",(0,o.kt)("inlineCode",{parentName:"p"},"COUNT(*)")," metric and instead add ",(0,o.kt)("inlineCode",{parentName:"p"},"AVG(Cost)"),", to show the mean value."),(0,o.kt)("img",{src:(0,i.Z)("/img/tutorial/average_aggregate_for_cost.png")}),(0,o.kt)("p",null,"Next, select ",(0,o.kt)("strong",{parentName:"p"},"Run Query")," to show the data on the chart."),(0,o.kt)("p",null,"How does this look? Well, we can see that the average cost goes up in December. However, perhaps it\ndoesn\u2019t make sense to combine both single and return tickets, but rather show two separate lines for\neach ticket type."),(0,o.kt)("p",null,"Let\u2019s do this by selecting Ticket Single or Return in the Group by box, and the selecting ",(0,o.kt)("strong",{parentName:"p"},"Run\nQuery")," again. Nice! We can see that on average single tickets are cheaper than returns and that the\nbig spike in December is caused by return tickets."),(0,o.kt)("p",null,"Our chart is looking pretty good already, but let\u2019s customize some more by going to the Customize\ntab on the left hand pane. Within this pane, try changing the Color Scheme, removing the range\nfilter by selecting No in the Show Range Filter drop down and adding some labels using X Axis Label\nand Y Axis Label."),(0,o.kt)("img",{src:(0,i.Z)("/img/tutorial/tutorial_line_chart.png")}),(0,o.kt)("p",null,"Once you\u2019re done, publish the chart in your Tutorial Dashboard."),(0,o.kt)("h3",{id:"markup"},"Markup"),(0,o.kt)("p",null,"In this section, we will add some text to our dashboard. If you\u2019re there already, you can navigate\nto the dashboard by selecting Dashboards on the top menu, then Tutorial dashboard from the list of\ndashboards. Got into edit mode by selecting ",(0,o.kt)("strong",{parentName:"p"},"Edit dashboard"),"."),(0,o.kt)("p",null,"Within the Insert components pane, drag and drop a Markdown box on the dashboard. Look for the blue\nlines which indicate the anchor where the box will go."),(0,o.kt)("img",{src:(0,i.Z)("/img/tutorial/blue_bar_insert_component.png")}),(0,o.kt)("p",null,"Now, to edit the text, select the box. You can enter text, in markdown format (see\n",(0,o.kt)("a",{parentName:"p",href:"https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet"},"this Markdown Cheatsheet")," for\nmore information about this format). You can toggle between Edit and Preview using the menu on the\ntop of the box."),(0,o.kt)("img",{src:(0,i.Z)("/img/tutorial/markdown.png")}),(0,o.kt)("p",null,"To exit, select any other part of the dashboard. Finally, don\u2019t forget to keep your changes using\n",(0,o.kt)("strong",{parentName:"p"},"Save changes"),"."),(0,o.kt)("h3",{id:"filter-box"},"Filter Box"),(0,o.kt)("p",null,"In this section, you will learn how to add a filter to your dashboard. Specifically, we will create\na filter that allows us to look at those flights that depart from a particular country."),(0,o.kt)("p",null,"A filter box visualization can be created as any other visualization by selecting ",(0,o.kt)("strong",{parentName:"p"},"+ \u2023 Chart"),",\nand then ",(0,o.kt)("em",{parentName:"p"},"tutorial_flights")," as the datasource and Filter Box as the visualization type."),(0,o.kt)("p",null,"First of all, in the ",(0,o.kt)("strong",{parentName:"p"},"Time")," section, remove the filter from the Time range selection by selecting\nNo filter."),(0,o.kt)("p",null,"Next, in ",(0,o.kt)("strong",{parentName:"p"},"Filters Configurations")," first add a new filter by selecting the plus sign and then edit\nthe newly created filter by selecting the pencil icon."),(0,o.kt)("p",null,"For our use case, it makes most sense to present a list of countries in alphabetical order. First,\nenter the column as Origin Country and keep all other options the same and then select ",(0,o.kt)("strong",{parentName:"p"},"Run\nQuery"),". This gives us a preview of our filter."),(0,o.kt)("p",null,"Next, remove the date filter by unchecking the Date Filter checkbox."),(0,o.kt)("img",{src:(0,i.Z)("/img/tutorial/filter_on_origin_country.png")}),(0,o.kt)("p",null,"Finally, select ",(0,o.kt)("strong",{parentName:"p"},"Save"),", name the chart as Tutorial Filter, add the chart to our existing Tutorial\nDashboard and then Save & go to dashboard. Once on the Dashboard, try using the filter to show only\nthose flights that departed from the United Kingdom \u2013 you will see the filter is applied to all of\nthe other visualizations on the dashboard."),(0,o.kt)("h3",{id:"publishing-your-dashboard"},"Publishing Your Dashboard"),(0,o.kt)("p",null,"If you have followed all of the steps outlined in the previous section, you should have a dashboard\nthat looks like the below. If you would like, you can rearrange the elements of the dashboard by\nselecting ",(0,o.kt)("strong",{parentName:"p"},"Edit dashboard")," and dragging and dropping."),(0,o.kt)("p",null,"If you would like to make your dashboard available to other users, simply select Draft next to the\ntitle of your dashboard on the top left to change your dashboard to be in Published state. You can\nalso favorite this dashboard by selecting the star."),(0,o.kt)("img",{src:(0,i.Z)("/img/tutorial/publish_dashboard.png")}),(0,o.kt)("h3",{id:"annotations"},"Annotations"),(0,o.kt)("p",null,"Annotations allow you to add additional context to your chart. In this section, we will add an\nannotation to the Tutorial Line Chart we made in a previous section. Specifically, we will add the\ndates when some flights were cancelled by the UK\u2019s Civil Aviation Authority in response to the\neruption of the Gr\xedmsv\xf6tn volcano in Iceland (23-25 May 2011)."),(0,o.kt)("p",null,"First, add an annotation layer by navigating to Manage \u2023 Annotation Layers. Add a new annotation\nlayer by selecting the green plus sign to add a new record. Enter the name Volcanic Eruptions and\nsave. We can use this layer to refer to a number of different annotations."),(0,o.kt)("p",null,"Next, add an annotation by navigating to Manage \u2023 Annotations and then create a new annotation by\nselecting the green plus sign. Then, select the Volcanic Eruptions layer, add a short description\nGr\xedmsv\xf6tn and the eruption dates (23-25 May 2011) before finally saving."),(0,o.kt)("img",{src:(0,i.Z)("/img/tutorial/edit_annotation.png")}),(0,o.kt)("p",null,"Then, navigate to the line chart by going to Charts then selecting Tutorial Line Chart from the\nlist. Next, go to the Annotations and Layers section and select Add Annotation Layer. Within this\ndialogue:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Name the layer as Volcanic Eruptions"),(0,o.kt)("li",{parentName:"ul"},"Change the Annotation Layer Type to Event"),(0,o.kt)("li",{parentName:"ul"},"Set the Annotation Source as Superset annotation"),(0,o.kt)("li",{parentName:"ul"},"Specify the Annotation Layer as Volcanic Eruptions")),(0,o.kt)("img",{src:(0,i.Z)("/img/tutorial/annotation_settings.png")}),(0,o.kt)("p",null,"Select ",(0,o.kt)("strong",{parentName:"p"},"Apply")," to see your annotation shown on the chart."),(0,o.kt)("img",{src:(0,i.Z)("/img/tutorial/annotation.png")}),(0,o.kt)("p",null,"If you wish, you can change how your annotation looks by changing the settings in the Display\nconfiguration section. Otherwise, select ",(0,o.kt)("strong",{parentName:"p"},"OK")," and finally ",(0,o.kt)("strong",{parentName:"p"},"Save")," to save your chart. If you keep\nthe default selection to overwrite the chart, your annotation will be saved to the chart and also\nappear automatically in the Tutorial Dashboard."),(0,o.kt)("h3",{id:"advanced-analytics"},"Advanced Analytics"),(0,o.kt)("p",null,"In this section, we are going to explore the Advanced Analytics feature of Apache Superset that\nallows you to apply additional transformations to your data. The three types of transformation are:"),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Setting up the base chart")),(0,o.kt)("p",null,"In this section, we\u2019re going to set up a base chart which we can then apply the different ",(0,o.kt)("strong",{parentName:"p"},"Advanced\nAnalytics")," features to. Start off by creating a new chart using the same ",(0,o.kt)("em",{parentName:"p"},"tutorial_flights"),"\ndatasource and the ",(0,o.kt)("strong",{parentName:"p"},"Line Chart")," visualization type. Within the Time section, set the Time Range as\n1st October 2011 and 31st October 2011."),(0,o.kt)("p",null,"Next, in the query section, change the Metrics to the sum of Cost. Select ",(0,o.kt)("strong",{parentName:"p"},"Run Query")," to show the\nchart. You should see the total cost per day for each month in October 2011."),(0,o.kt)("img",{src:(0,i.Z)("/img/tutorial/advanced_analytics_base.png")}),(0,o.kt)("p",null,"Finally, save the visualization as Tutorial Advanced Analytics Base, adding it to the Tutorial\nDashboard."),(0,o.kt)("h3",{id:"rolling-mean"},"Rolling Mean"),(0,o.kt)("p",null,"There is quite a lot of variation in the data, which makes it difficult to identify any trend. One\napproach we can take is to show instead a rolling average of the time series. To do this, in the\n",(0,o.kt)("strong",{parentName:"p"},"Moving Average")," subsection of ",(0,o.kt)("strong",{parentName:"p"},"Advanced Analytics"),", select mean in the ",(0,o.kt)("strong",{parentName:"p"},"Rolling")," box and\nenter 7 into both Periods and Min Periods. The period is the length of the rolling period expressed\nas a multiple of the Time Grain. In our example, the Time Grain is day, so the rolling period is 7\ndays, such that on the 7th October 2011 the value shown would correspond to the first seven days of\nOctober 2011. Lastly, by specifying Min Periods as 7, we ensure that our mean is always calculated\non 7 days and we avoid any ramp up period."),(0,o.kt)("p",null,"After displaying the chart by selecting ",(0,o.kt)("strong",{parentName:"p"},"Run Query")," you will see that the data is less variable\nand that the series starts later as the ramp up period is excluded."),(0,o.kt)("img",{src:(0,i.Z)("/img/tutorial/rolling_mean.png")}),(0,o.kt)("p",null,"Save the chart as Tutorial Rolling Mean and add it to the Tutorial Dashboard."),(0,o.kt)("h3",{id:"time-comparison"},"Time Comparison"),(0,o.kt)("p",null,"In this section, we will compare values in our time series to the value a week before. Start off by\nopening the Tutorial Advanced Analytics Base chart, by going to ",(0,o.kt)("strong",{parentName:"p"},"Charts")," in the top menu and then\nselecting the visualization name in the list (alternatively, find the chart in the Tutorial\nDashboard and select Explore chart from the menu for that visualization)."),(0,o.kt)("p",null,"Next, in the Time Comparison subsection of ",(0,o.kt)("strong",{parentName:"p"},"Advanced Analytics"),", enter the Time Shift by typing in\n\u201cminus 1 week\u201d (note this box accepts input in natural language). Run Query to see the new chart,\nwhich has an additional series with the same values, shifted a week back in time."),(0,o.kt)("img",{src:(0,i.Z)("/img/tutorial/time_comparison_two_series.png")}),(0,o.kt)("p",null,"Then, change the ",(0,o.kt)("strong",{parentName:"p"},"Calculation type")," to Absolute difference and select ",(0,o.kt)("strong",{parentName:"p"},"Run Query"),". We can now\nsee only one series again, this time showing the difference between the two series we saw\npreviously."),(0,o.kt)("img",{src:(0,i.Z)("/img/tutorial/time_comparison_absolute_difference.png")}),(0,o.kt)("p",null,"Save the chart as Tutorial Time Comparison and add it to the Tutorial Dashboard."),(0,o.kt)("h3",{id:"resampling-the-data"},"Resampling the data"),(0,o.kt)("p",null,"In this section, we\u2019ll resample the data so that rather than having daily data we have weekly data.\nAs in the previous section, reopen the Tutorial Advanced Analytics Base chart."),(0,o.kt)("p",null,"Next, in the Python Functions subsection of ",(0,o.kt)("strong",{parentName:"p"},"Advanced Analytics"),", enter 7D, corresponding to seven\ndays, in the Rule and median as the Method and show the chart by selecting ",(0,o.kt)("strong",{parentName:"p"},"Run Query"),"."),(0,o.kt)("img",{src:(0,i.Z)("/img/tutorial/resample.png")}),(0,o.kt)("p",null,"Note that now we have a single data point every 7 days. In our case, the value showed corresponds to\nthe median value within the seven daily data points. For more information on the meaning of the\nvarious options in this section, refer to the\n",(0,o.kt)("a",{parentName:"p",href:"https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.resample.html"},"Pandas documentation"),"."),(0,o.kt)("p",null,"Lastly, save your chart as Tutorial Resample and add it to the Tutorial Dashboard. Go to the\ntutorial dashboard to see the four charts side by side and compare the different outputs."))}c.isMDXComponent=!0},3905:(t,e,a)=>{a.d(e,{Zo:()=>p,kt:()=>g});var n=a(67294);function o(t,e,a){return e in t?Object.defineProperty(t,e,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[e]=a,t}function i(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,n)}return a}function r(t){for(var e=1;e<arguments.length;e++){var a=null!=arguments[e]?arguments[e]:{};e%2?i(Object(a),!0).forEach((function(e){o(t,e,a[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(a,e))}))}return t}function s(t,e){if(null==t)return{};var a,n,o=function(t,e){if(null==t)return{};var a,n,o={},i=Object.keys(t);for(n=0;n<i.length;n++)a=i[n],e.indexOf(a)>=0||(o[a]=t[a]);return o}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n<i.length;n++)a=i[n],e.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(o[a]=t[a])}return o}var l=n.createContext({}),h=function(t){var e=n.useContext(l),a=e;return t&&(a="function"==typeof t?t(e):r(r({},e),t)),a},p=function(t){var e=h(t.components);return n.createElement(l.Provider,{value:e},t.children)},d="mdxType",u={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},c=n.forwardRef((function(t,e){var a=t.components,o=t.mdxType,i=t.originalType,l=t.parentName,p=s(t,["components","mdxType","originalType","parentName"]),d=h(a),c=o,g=d["".concat(l,".").concat(c)]||d[c]||u[c]||i;return a?n.createElement(g,r(r({ref:e},p),{},{components:a})):n.createElement(g,r({ref:e},p))}));function g(t,e){var a=arguments,o=e&&e.mdxType;if("string"==typeof t||o){var i=a.length,r=new Array(i);r[0]=c;var s={};for(var l in e)hasOwnProperty.call(e,l)&&(s[l]=e[l]);s.originalType=t,s[d]="string"==typeof t?t:o,r[1]=s;for(var h=2;h<i;h++)r[h]=a[h];return n.createElement.apply(null,r)}return n.createElement.apply(null,a)}c.displayName="MDXCreateElement"}}]);