title
SANKEY DIAGRAM TABLEAU
description
Learn how to make Sankey Diagram in Tableau through this amazing tutorial!
Get Tableau Certified, guaranteed - https://www.artofvisualization.com/
Sankey Diagrams display flows and their quantities in proportion to one another. The width of the arrows or lines are used to show their magnitudes, so the bigger the arrow, the larger the quantity of flow. Flow arrows or lines can combine together or split through their paths on each stage of a process. Colour can be used to divide the diagram into different categories or to show the transition from one state of the process to another.
INTRODUCTION
CONNECING TO THE DATA
2:02 - We'll connect the data, connect to our Excel file and we'll connect to our African mobile data Excel file.
2:15 - We'll bring in our sales data and you'll see that we have the full 1056 rows that we’re looking for.
2:41 - You have your SELECT statement, then you tell them what columns to bring in.
WORKING WITH DATA
2:57 - So what we're going to do, is we're going to take this; we're going to Union all, with the exact same data set.
3:24 - So we'll put it in segment right here, we'll call this "VizSide"
3:32 - Then over here, we're going to call this region, as "VizSide".
4:07 - So what we actually need to do, is somehow create these marks so Tableau will be able to draw the lines across them.
4:38 - I'm going to walk you through the first steps of that data densification
5:22 - So now we have ToPad, the thing is if you bring ToPad out to columns.
5:37 - But if you come down, you click on it you say create bins
6:17 - So we've basically done is used Tableaus in-memory engine, to create these extra marks
CREATING CALCULATIONS
6:31 - Next, we're going to create a calculated field called T.
6:44 - What this does is a little bit of an offset, that evenly spaces all our marks across the view.
7:10 - We have a value of 1 we have our value of 49 but we also have a mark for every single individual bin. This is the essence of data densification and data padding.
7:26 - So, now we have our vertical marks, we have vertical data sets, our horizontal marks.
8:01 - Now we're going to come in and we’re going to duplicate that, and we will edit, call this Rank 2 - I'm actually going to leave it entirely the same.
8:17 - The next calculated field we need to make is our sigmoid function. The sigmoid function right here off Wikipedia mathematical function with an s-shaped curve.
8:32 - So we're going to create a sigmoid. It is going to be 1 over 1 plus; now we need to use e; Tableau doesn't have e as a function but it does have an exponent function.
8:48 - So if we do exponent 1 that's the same thing as typing e. Then we're going to raise it to the power of negative T.
BUILDING A VIEW
10:17 - Ok those a lot of different calculations and now we get to the exciting part, where we're actually going to build out our view for a little bit.
10:55 - At this point we'll need to add in the two sides of our table or the two sides of our visualization that we’re building.
11:13 - So we want it to include Segment, we want to include Region and then we want to include Padded because it tells you go from Segment to go to Region a long Padded.
11:30 - Coming up to Rank 2 we're going to use all three again, but in this case, we want it to go from Padded, sorry from Region to Segment to Padded.
11:42 – And then for T we're going to make sure that it's using Padded so that our sigmoid function is able to comprehend every single mark.
12:19 - In the same spirit we will come to our curve and make it go from 0 to 1.
12:46 - Then we can come in we can hide our headers and we have very good makings of our Sankey Chart.
13:44 - So, what we need to do rather than using sum sales itself, we're going to create another calculation. We call this a Sales Sizing and we'll use a table calculation in order to trick Tableau
15:27 - We want to come into our color scheme as well and rather than being blue orange red will make it blue orange green just so it matches our Sankey Chart.
CREATING A DASHBOARD
16:13 - Now we're going to create a dashboard that has all three of them.
16:25 - So first we're going to bring in our Sankey Chart. Then we'll add in Segment to the side and we'll add in Region to the other side.
16:40 - Then we'll do some more cosmetic stuff where we'll hide the actually don't need these titles either. As we come through we can format we can get rid of our gridlines we can get rid of our 0 lines clean that up a little
17:22 - A couple more cosmetic things we're going to do real fast. Our tool tips are really distracting at this point. So I'm going to go, I'm going to disable them on all of our charts.
18:18 - The last thing we want to add is actually some dashboard actions.
detail
{'title': 'SANKEY DIAGRAM TABLEAU', 'heatmap': [{'end': 308.815, 'start': 283.494, 'weight': 0.809}, {'end': 361.523, 'start': 319.04, 'weight': 0.969}, {'end': 429.704, 'start': 398.279, 'weight': 0.82}, {'end': 642.652, 'start': 624.859, 'weight': 0.709}, {'end': 721.556, 'start': 673.705, 'weight': 0.781}, {'end': 926.382, 'start': 896.745, 'weight': 0.881}], 'summary': "Learn to create a sankey diagram in tableau using african mobile's sales data, connect to excel files using custom sql, apply data densification and padding techniques, and build a sankey chart dashboard with segment and region data, column charts, color schemes, and interactive highlighting actions.", 'chapters': [{'end': 86.322, 'segs': [{'end': 86.322, 'src': 'embed', 'start': 33.337, 'weight': 0, 'content': [{'end': 38.739, 'text': 'They provided us with their sales data showing the date of their sales, what country the sale happened in the city,', 'start': 33.337, 'duration': 5.402}, {'end': 40.319, 'text': 'the region based off of UN regions.', 'start': 38.739, 'duration': 1.58}, {'end': 43.7, 'text': 'Then we have what segment the sale was in, either commercial, public, or residential.', 'start': 40.759, 'duration': 2.941}, {'end': 47.221, 'text': 'And then it also provides sales and profit numbers for those values.', 'start': 44.2, 'duration': 3.021}, {'end': 51.743, 'text': 'For our Sankey chart today, going back, you can see you need flow between two dimensions.', 'start': 47.941, 'duration': 3.802}, {'end': 59.347, 'text': "What we're going to model is the flow from each segment over to each region, and we're going to be looking at sales as we go through.", 'start': 52.323, 'duration': 7.024}, {'end': 67.831, 'text': "It's also important at this point to recognize and acknowledge the fact that the only reason we know how to do Sankey charts in Tableau is because of amazing work by people in the Tableau community.", 'start': 59.707, 'duration': 8.124}, {'end': 74.935, 'text': "People like Jeffrey Schaefer, who first piloted the techniques that we'll see today, and also Olivia Catherine, who expanded upon his work.", 'start': 68.271, 'duration': 6.664}, {'end': 81.779, 'text': "The method we're specifically going to use was actually perfected by Chris Love, building off of work by Noah Salvatara and Joe Mako.", 'start': 75.635, 'duration': 6.144}, {'end': 86.322, 'text': "Okay, with that quick introduction, let's start going and building our Sankey Diagram.", 'start': 82.639, 'duration': 3.683}], 'summary': 'Analyzing sales data to create a sankey chart modeling flow between segments and regions, acknowledging tableau community contributions.', 'duration': 52.985, 'max_score': 33.337, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/1HwCzlA9hI4/pics/1HwCzlA9hI433337.jpg'}], 'start': 0.765, 'title': 'Creating a sankey diagram', 'summary': "Introduces creating a sankey diagram in tableau using african mobile's sales data, focusing on segment and region flow, and acknowledging tableau community's contributions.", 'chapters': [{'end': 86.322, 'start': 0.765, 'title': 'Sankey diagram tutorial', 'summary': "Introduces a tutorial on creating a sankey diagram in tableau using african mobile's sales data, focusing on the flow between segments and regions, and acknowledges the contributions of key individuals in the tableau community.", 'duration': 85.557, 'highlights': ["The Sankey Diagram tutorial focuses on creating a chart to show the flow between segments and regions using African Mobile's sales data.", 'African Mobile provided sales data including date, country, city, UN region, segment (commercial, public, residential), and sales and profit numbers.', 'The method for creating Sankey charts in Tableau was perfected by Chris Love, building off the work of Noah Salvatara and Joe Mako, with initial contributions from Jeffrey Schaefer and Olivia Catherine.']}], 'duration': 85.557, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/1HwCzlA9hI4/pics/1HwCzlA9hI4765.jpg', 'highlights': ["The Sankey Diagram tutorial focuses on creating a chart to show the flow between segments and regions using African Mobile's sales data.", 'African Mobile provided sales data including date, country, city, UN region, segment (commercial, public, residential), and sales and profit numbers.', 'The method for creating Sankey charts in Tableau was perfected by Chris Love, building off the work of Noah Salvatara and Joe Mako, with initial contributions from Jeffrey Schaefer and Olivia Catherine.']}, {'end': 490.036, 'segs': [{'end': 134.876, 'src': 'embed', 'start': 104.317, 'weight': 0, 'content': [{'end': 108.221, 'text': "And then we'll also need a horizontal data built across the view that Tableau can draw marks across.", 'start': 104.317, 'duration': 3.904}, {'end': 111.323, 'text': "It's just kind of a way to conceptualize how the chart will be built.", 'start': 108.741, 'duration': 2.582}, {'end': 116.445, 'text': "Because of that, we can't use a standard connection because we're actually going to need to create two copies of our data.", 'start': 112.103, 'duration': 4.342}, {'end': 118.627, 'text': 'One for this column, one for this column.', 'start': 116.866, 'duration': 1.761}, {'end': 126.451, 'text': "So we'll come over here to Tableau, we'll connect to data, connect to our Excel file, and we'll connect to our African Mobile Data Excel file.", 'start': 120.348, 'duration': 6.103}, {'end': 130.934, 'text': "However, instead of clicking on Open, we'll use this dropdown and choose Open with Legacy Connection.", 'start': 126.751, 'duration': 4.183}, {'end': 134.876, 'text': 'That uses the old Microsoft JET engine that Tableau used to connect to Excel files with.', 'start': 131.394, 'duration': 3.482}], 'summary': 'Tableau requires two copies of data, using legacy connection for excel files.', 'duration': 30.559, 'max_score': 104.317, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/1HwCzlA9hI4/pics/1HwCzlA9hI4104317.jpg'}, {'end': 197.678, 'src': 'embed', 'start': 170.236, 'weight': 2, 'content': [{'end': 174.757, 'text': 'So in this case, from the Sales Data tab, we want City, Country, Date, Profit, Region, Sales, and Segment.', 'start': 170.236, 'duration': 4.521}, {'end': 181.54, 'text': "So what we're going to do is we're going to take this, we're going to union all with the exact same data set.", 'start': 174.777, 'duration': 6.763}, {'end': 189.032, 'text': 'If we click OK, you can see that we now have 2, 112 rows, effectively having doubled our data set.', 'start': 183.769, 'duration': 5.263}, {'end': 195.556, 'text': "Looking back at our example, we're going to want to use the first copy of the data for this segment, column,", 'start': 190.733, 'duration': 4.823}, {'end': 197.678, 'text': 'the second copy of the data for this region, column.', 'start': 195.556, 'duration': 2.122}], 'summary': 'Merged sales data doubled to 2,112 rows, with specific data fields identified.', 'duration': 27.442, 'max_score': 170.236, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/1HwCzlA9hI4/pics/1HwCzlA9hI4170236.jpg'}, {'end': 310.416, 'src': 'heatmap', 'start': 276.431, 'weight': 3, 'content': [{'end': 280.353, 'text': "So we're going to come over here and I'm going to walk you through the first steps of that.", 'start': 276.431, 'duration': 3.922}, {'end': 283.054, 'text': 'Data densification is also known as padding.', 'start': 280.793, 'duration': 2.261}, {'end': 285.395, 'text': "So we'll create a calculated field that says to pad.", 'start': 283.494, 'duration': 1.901}, {'end': 287.536, 'text': "So we'll use a new column we made.", 'start': 286.595, 'duration': 0.941}, {'end': 292.078, 'text': 'It says if vizSide is equal to segment then 1 else 49 end.', 'start': 287.556, 'duration': 4.522}, {'end': 303.012, 'text': "What we've done in this situation is created a value of 1 for our segments column and a value of 49 for our regions column.", 'start': 296.288, 'duration': 6.724}, {'end': 308.815, 'text': "And those effectively act as bookends where we'll then fill in data in between them.", 'start': 303.892, 'duration': 4.923}, {'end': 310.416, 'text': '49 seems like a bit of an arbitrary number.', 'start': 309.035, 'duration': 1.381}], 'summary': 'Introducing data densification and padding with calculated fields, utilizing a value of 1 for segments and 49 for regions to fill in data.', 'duration': 33.985, 'max_score': 276.431, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/1HwCzlA9hI4/pics/1HwCzlA9hI4276431.jpg'}, {'end': 361.523, 'src': 'heatmap', 'start': 319.04, 'weight': 0.969, 'content': [{'end': 322.362, 'text': 'So 49 is a nice compromise that goes in the middle.', 'start': 319.04, 'duration': 3.322}, {'end': 324.772, 'text': 'So now we have to pad.', 'start': 323.991, 'duration': 0.781}, {'end': 328.494, 'text': 'The thing is, if you bring to pad out to columns,', 'start': 325.032, 'duration': 3.462}, {'end': 338.001, 'text': 'just bring out its value right there and then you can see that right now we actually only have a value in one and a value in 49..', 'start': 328.494, 'duration': 9.507}, {'end': 341.464, 'text': 'But if you come down, you click on it, you say create bins.', 'start': 338.001, 'duration': 3.463}, {'end': 344.266, 'text': "We'll call this padded.", 'start': 343.105, 'duration': 1.161}, {'end': 348.289, 'text': 'Call that one for the size of the bin.', 'start': 345.727, 'duration': 2.562}, {'end': 357.78, 'text': 'Now, instead of having just two values, 1 and 49, we have values from 1 all the way through to 49.', 'start': 349.514, 'duration': 8.266}, {'end': 361.523, 'text': 'This happens because bins and Tableau are what are called range aware.', 'start': 357.78, 'duration': 3.743}], 'summary': 'Using tableau to pad values from 1 to 49, creating a range aware visualization.', 'duration': 42.483, 'max_score': 319.04, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/1HwCzlA9hI4/pics/1HwCzlA9hI4319040.jpg'}, {'end': 429.704, 'src': 'heatmap', 'start': 398.279, 'weight': 0.82, 'content': [{'end': 403.682, 'text': "And with this, we're just going to throw in the index calculation, minus 25, divide that by 4.", 'start': 398.279, 'duration': 5.403}, {'end': 408.284, 'text': 'What this does is a little bit of an offset that evenly spaces all of our marks across the view.', 'start': 403.682, 'duration': 4.602}, {'end': 411.983, 'text': 'Now to see that in action.', 'start': 410.441, 'duration': 1.542}, {'end': 417.67, 'text': "let's pull T up and then we'll add padded to our level of detail and we'll make T calculate.", 'start': 411.983, 'duration': 5.687}, {'end': 421.174, 'text': 'compute, not using table across, because you see it only has two values.', 'start': 417.67, 'duration': 3.504}, {'end': 423.797, 'text': 'but if we compute it using padded,', 'start': 421.174, 'duration': 2.623}, {'end': 429.704, 'text': "change this to circle so we can see a little bit easier and you'll notice all of a sudden we have a whole bunch of data that wasn't there before.", 'start': 423.797, 'duration': 5.907}], 'summary': 'Offset index calculation evenly spaces marks across the view.', 'duration': 31.425, 'max_score': 398.279, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/1HwCzlA9hI4/pics/1HwCzlA9hI4398279.jpg'}, {'end': 496.172, 'src': 'embed', 'start': 468.762, 'weight': 4, 'content': [{'end': 475.106, 'text': 'This is going to be a running sum of the sum of sales divided by the total of the sum of sales.', 'start': 468.762, 'duration': 6.344}, {'end': 480.029, 'text': 'For those of you familiar with table calculations, this is just a percent of total across the entire data set.', 'start': 475.827, 'duration': 4.202}, {'end': 483.151, 'text': "Now we're going to come in and we're going to duplicate that.", 'start': 480.049, 'duration': 3.102}, {'end': 490.036, 'text': "And we'll edit, call this rank 2, and we're actually going to leave it entirely the same.", 'start': 485.673, 'duration': 4.363}, {'end': 496.172, 'text': 'So now we have a ranking function available for segment and a ranking function available for region.', 'start': 491.53, 'duration': 4.642}], 'summary': 'Running sum of sales divided by total sales, with ranking functions available for segment and region.', 'duration': 27.41, 'max_score': 468.762, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/1HwCzlA9hI4/pics/1HwCzlA9hI4468762.jpg'}], 'start': 87.199, 'title': 'Tableau data connection, densification, and padding', 'summary': 'Covers creating custom data connections in tableau, including connecting to excel files using custom sql, as well as data densification and padding techniques for doubling the data set and generating calculated fields for line positions.', 'chapters': [{'end': 169.655, 'start': 87.199, 'title': 'Tableau data connection and custom sql', 'summary': 'Explains the need for a custom data connection in tableau to create two copies of the data, one for each column, and the process of connecting to an excel file using legacy connection and creating a custom sql statement to access specific columns.', 'duration': 82.456, 'highlights': ['The need for a custom data connection in Tableau to create two copies of the data To build the chart, two copies of the data - one for each column - are required, necessitating a custom data connection.', 'Connecting to an Excel file using legacy connection and creating a custom SQL statement Legacy connection using the old Microsoft JET engine is used to connect to the Excel file, followed by creating a custom SQL statement to access specific columns like segment, region, and sales.', 'Explanation of custom SQL and its basic structure A basic explanation of SQL is provided, outlining the structure of a SELECT statement to specify columns and a FROM statement to specify the database.']}, {'end': 490.036, 'start': 170.236, 'title': 'Tableau data densification and padding', 'summary': 'Explains the process of data densification and padding in tableau, doubling the data set, creating horizontal marks using data densification, and generating calculated fields to inform line positions.', 'duration': 319.8, 'highlights': ['By unioning the data with the exact same dataset, the total rows effectively doubled to 2,112. The process of unioning the data resulted in the doubling of the total rows to 2,112, effectively increasing the dataset size.', 'Explained the technique of data densification in Tableau, using a calculated field to pad the data with values of 1 for segments and 49 for regions, creating extra marks for smooth visualization. The explanation of data densification technique involved creating a calculated field to pad the data with values of 1 for segments and 49 for regions, effectively creating extra marks for smooth visualization.', "Demonstrated the creation of a calculated field 'T' using the index calculation, resulting in evenly spaced marks across the view. The demonstration of creating a calculated field 'T' using the index calculation showcased the achievement of evenly spaced marks across the view.", "Described the creation of calculated fields 'rank 1' and 'rank 2' using running sum and percent of total across the entire data set. The description of creating calculated fields 'rank 1' and 'rank 2' involved using running sum and percent of total across the entire data set to inform line positions."]}], 'duration': 402.837, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/1HwCzlA9hI4/pics/1HwCzlA9hI487199.jpg', 'highlights': ['Connecting to an Excel file using legacy connection and creating a custom SQL statement Legacy connection using the old Microsoft JET engine is used to connect to the Excel file, followed by creating a custom SQL statement to access specific columns like segment, region, and sales.', 'The need for a custom data connection in Tableau to create two copies of the data To build the chart, two copies of the data - one for each column - are required, necessitating a custom data connection.', 'By unioning the data with the exact same dataset, the total rows effectively doubled to 2,112. The process of unioning the data resulted in the doubling of the total rows to 2,112, effectively increasing the dataset size.', 'Explained the technique of data densification in Tableau, using a calculated field to pad the data with values of 1 for segments and 49 for regions, creating extra marks for smooth visualization.', "Described the creation of calculated fields 'rank 1' and 'rank 2' using running sum and percent of total across the entire data set. The description of creating calculated fields 'rank 1' and 'rank 2' involved using running sum and percent of total across the entire data set to inform line positions."]}, {'end': 1180.835, 'segs': [{'end': 521.735, 'src': 'embed', 'start': 491.53, 'weight': 1, 'content': [{'end': 496.172, 'text': 'So now we have a ranking function available for segment and a ranking function available for region.', 'start': 491.53, 'duration': 4.642}, {'end': 500.654, 'text': 'The next calculated field we need to make is our sigmoid function.', 'start': 497.593, 'duration': 3.061}, {'end': 505.656, 'text': 'The sigmoid function right here off of Wikipedia, a mathematical function with an S-shaped curve.', 'start': 501.814, 'duration': 3.842}, {'end': 512.759, 'text': 'This right here is the special case logistic function, which is one over one plus e to the negative t.', 'start': 506.156, 'duration': 6.603}, {'end': 513.719, 'text': "So we're gonna create our sigmoid.", 'start': 512.759, 'duration': 0.96}, {'end': 521.735, 'text': "It's gonna be one over 1 plus, now we need to use e.", 'start': 514.299, 'duration': 7.436}], 'summary': 'Creating a sigmoid function for ranking, using mathematical formula.', 'duration': 30.205, 'max_score': 491.53, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/1HwCzlA9hI4/pics/1HwCzlA9hI4491530.jpg'}, {'end': 565.794, 'src': 'embed', 'start': 536.504, 'weight': 0, 'content': [{'end': 540.066, 'text': "Some of you probably already saw ahead and said, oh, that's why we named it t.", 'start': 536.504, 'duration': 3.562}, {'end': 544.549, 'text': "Doing this, the sigmoid function can understand what position we're at as we cross our view.", 'start': 540.066, 'duration': 4.483}, {'end': 549.668, 'text': "So we'll be able to draw our curve using that data densification that happened.", 'start': 545.546, 'duration': 4.122}, {'end': 561.812, 'text': 'Now that we have the function that will give us the curve that we need, which, going back to our example, gives us this kind of curve on the line,', 'start': 552.669, 'duration': 9.143}, {'end': 565.794, 'text': "we're going to need to write one more calculation that actually builds out the full curve.", 'start': 561.812, 'duration': 3.982}], 'summary': 'Using the sigmoid function to draw a curve based on data densification.', 'duration': 29.29, 'max_score': 536.504, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/1HwCzlA9hI4/pics/1HwCzlA9hI4536504.jpg'}, {'end': 655.219, 'src': 'heatmap', 'start': 624.859, 'weight': 0.709, 'content': [{'end': 628.362, 'text': "So if you drag Curve up, you'll notice that nothing's actually happened yet.", 'start': 624.859, 'duration': 3.503}, {'end': 633.706, 'text': 'We have two values, one on the extreme edge to the left and one on the extreme edge to the right.', 'start': 628.982, 'duration': 4.724}, {'end': 637.809, 'text': "This is because Curve doesn't yet understand how we want it to calculate.", 'start': 634.146, 'duration': 3.663}, {'end': 642.652, 'text': "But in order to have it calculate correctly, we're going to need to use something called nested table calculations.", 'start': 638.67, 'duration': 3.982}, {'end': 650.597, 'text': 'Nested table calculations are the idea that for different calculations that make up your table calculation, you can have them calculate differently.', 'start': 643.533, 'duration': 7.064}, {'end': 655.219, 'text': "However, at this point, we only have padded in our view because that's the only field that's on our level of detail.", 'start': 651.317, 'duration': 3.902}], 'summary': 'Curve needs nested table calculations for correct calculation. only padded field on level of detail.', 'duration': 30.36, 'max_score': 624.859, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/1HwCzlA9hI4/pics/1HwCzlA9hI4624859.jpg'}, {'end': 666.763, 'src': 'embed', 'start': 643.533, 'weight': 2, 'content': [{'end': 650.597, 'text': 'Nested table calculations are the idea that for different calculations that make up your table calculation, you can have them calculate differently.', 'start': 643.533, 'duration': 7.064}, {'end': 655.219, 'text': "However, at this point, we only have padded in our view because that's the only field that's on our level of detail.", 'start': 651.317, 'duration': 3.902}, {'end': 660.621, 'text': "At this point, we need to add in the two sides of our table or the two sides of our visualization that we're building.", 'start': 655.239, 'duration': 5.382}, {'end': 663.123, 'text': "So we have segment and then we'll add in region.", 'start': 660.762, 'duration': 2.361}, {'end': 664.402, 'text': 'So both there.', 'start': 663.942, 'duration': 0.46}, {'end': 666.763, 'text': 'And now we have access to those in our table calculation.', 'start': 664.562, 'duration': 2.201}], 'summary': 'Nested table calculations allow for different calculations within a table calculation. adding segment and region provides access to those in the table calculation.', 'duration': 23.23, 'max_score': 643.533, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/1HwCzlA9hI4/pics/1HwCzlA9hI4643533.jpg'}, {'end': 721.556, 'src': 'heatmap', 'start': 673.705, 'weight': 0.781, 'content': [{'end': 676.545, 'text': 'So we want it to include segment, we want it to include region.', 'start': 673.705, 'duration': 2.84}, {'end': 683.627, 'text': 'And then we want to include padded because it tells you go from segment to go to region along padded.', 'start': 677.246, 'duration': 6.381}, {'end': 689.649, 'text': "We can also drag these up, make sure they're in the right order so it processes correctly.", 'start': 686.168, 'duration': 3.481}, {'end': 694.355, 'text': "Coming up to rank two, we're going to use all three again.", 'start': 690.814, 'duration': 3.541}, {'end': 701.376, 'text': 'But in this case, we want it to go from padded, sorry, from region to segment to padded.', 'start': 695.375, 'duration': 6.001}, {'end': 709.798, 'text': "And then for t, we're going to want to make sure that it's using padded so that our sigmoid function is able to comprehend every single mark.", 'start': 703.096, 'duration': 6.702}, {'end': 714.238, 'text': "At this point, we're going to take a break from the complex calculations and do a little bit of cosmetic work.", 'start': 710.558, 'duration': 3.68}, {'end': 715.399, 'text': 'Going to come in here.', 'start': 714.718, 'duration': 0.681}, {'end': 717.099, 'text': 'We will remove the grid lines.', 'start': 715.959, 'duration': 1.14}, {'end': 721.556, 'text': "And then we'll remove the zero lines, so we have a nice white clean background.", 'start': 718.115, 'duration': 3.441}], 'summary': 'Configuring segments, regions, and padding for efficient processing and visualization.', 'duration': 47.851, 'max_score': 673.705, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/1HwCzlA9hI4/pics/1HwCzlA9hI4673705.jpg'}, {'end': 926.382, 'src': 'heatmap', 'start': 896.745, 'weight': 0.881, 'content': [{'end': 899.165, 'text': 'And then we will add our sales to our columns.', 'start': 896.745, 'duration': 2.42}, {'end': 901.006, 'text': 'Actually want that on rows.', 'start': 899.986, 'duration': 1.02}, {'end': 904.047, 'text': "And then we'll make this into a table calculation really quick.", 'start': 902.066, 'duration': 1.981}, {'end': 905.187, 'text': 'Make it percent of total.', 'start': 904.407, 'duration': 0.78}, {'end': 908.01, 'text': 'Compute using table down.', 'start': 906.789, 'duration': 1.221}, {'end': 910.131, 'text': "We'll bring that to our label.", 'start': 909.191, 'duration': 0.94}, {'end': 911.592, 'text': "We'll also bring segment to our label.", 'start': 910.291, 'duration': 1.301}, {'end': 913.173, 'text': 'Switch those two.', 'start': 912.593, 'duration': 0.58}, {'end': 915.615, 'text': 'Make it a little bit wider.', 'start': 914.754, 'duration': 0.861}, {'end': 917.296, 'text': "And we'll come in and fix the formatting here.", 'start': 915.955, 'duration': 1.341}, {'end': 921.178, 'text': "We don't need three zeros on our percentages.", 'start': 917.796, 'duration': 3.382}, {'end': 923.18, 'text': 'One will probably be just fine.', 'start': 922.239, 'duration': 0.941}, {'end': 926.382, 'text': 'Then we have this for segment.', 'start': 925.041, 'duration': 1.341}], 'summary': 'Sales data organized into table with percent of total and segment labels.', 'duration': 29.637, 'max_score': 896.745, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/1HwCzlA9hI4/pics/1HwCzlA9hI4896745.jpg'}, {'end': 1036.426, 'src': 'embed', 'start': 1006.57, 'weight': 3, 'content': [{'end': 1013.314, 'text': 'Again, we can come through and we can format.', 'start': 1006.57, 'duration': 6.744}, {'end': 1015.035, 'text': 'We can get rid of our grid lines.', 'start': 1013.354, 'duration': 1.681}, {'end': 1016.896, 'text': 'We can get rid of our zero lines.', 'start': 1015.055, 'duration': 1.841}, {'end': 1019.618, 'text': 'Clean that up a little bit.', 'start': 1018.777, 'duration': 0.841}, {'end': 1026.579, 'text': 'Now we manually go through and change these values a little bit.', 'start': 1023.058, 'duration': 3.521}, {'end': 1029.742, 'text': 'Change the size of your bar charts.', 'start': 1027.981, 'duration': 1.761}, {'end': 1036.426, 'text': 'And we have the flow of sales from commercial to either eastern, middle, northern, southern, or western.', 'start': 1030.723, 'duration': 5.703}], 'summary': 'Formatting data, adjusting chart size, and analyzing sales flow by region.', 'duration': 29.856, 'max_score': 1006.57, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/1HwCzlA9hI4/pics/1HwCzlA9hI41006570.jpg'}], 'start': 491.53, 'title': 'Creating sigmoid function and sankey chart dashboard', 'summary': 'Explains the creation of a sigmoid function and building a sankey chart in tableau, including the mathematical explanation of the sigmoid function, nested table calculations, challenges and solutions in data visualization, and demonstrates creating a sankey chart dashboard with segment and region data, column charts, color schemes, formatting, and interactive highlighting actions.', 'chapters': [{'end': 856.952, 'start': 491.53, 'title': 'Creating sigmoid function and data visualization', 'summary': 'Explains the creation of a sigmoid function, utilizing nested table calculations, and data visualization to build a sankey chart in tableau, with key points including the mathematical explanation of the sigmoid function, the use of nested table calculations, and the challenges and solutions in data visualization.', 'duration': 365.422, 'highlights': ['The sigmoid function is created using the mathematical formula 1 / (1 + e^(-t)), where e is approximated using an exponential function, enabling the understanding of position as data is densified, facilitating the construction of the desired curve for visualization.', 'The construction of the Sankey chart involves a calculated field that utilizes rank values and the sigmoid function to produce a curve, with the explanation of the impact of rank values on the curve and the significance of the sigmoid function in creating the desired curve between the rank values.', 'The concept of nested table calculations is introduced to control how the table calculation processes different fields, enabling the correct calculation and visualization of the data, with a focus on utilizing nested table calculations for segment and region, and the need to adjust the order of fields for accurate processing.', 'The data visualization process involves cosmetic adjustments such as removing grid lines and zero lines, modifying the axis ranges, reversing alphabetical order, hiding headers, and changing the visualization from circle to line to enhance the aesthetics and functionality of the Sankey chart.']}, {'end': 1180.835, 'start': 857.732, 'title': 'Creating sankey chart dashboard', 'summary': 'Demonstrates the process of creating a sankey chart dashboard in tableau, incorporating segment and region data, adding column charts, applying color schemes, formatting the dashboard, and implementing interactive highlighting actions.', 'duration': 323.103, 'highlights': ['The chapter demonstrates the process of creating a Sankey chart dashboard in Tableau. The main focus of the tutorial.', 'Incorporating segment and region data and adding column charts. Key steps in creating the dashboard.', 'Applying color schemes and formatting the dashboard. Important aspects of visual presentation.', 'Implementing interactive highlighting actions for segment and region data. Demonstrates the use of interactive features to enhance the visualization.']}], 'duration': 689.305, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/1HwCzlA9hI4/pics/1HwCzlA9hI4491530.jpg', 'highlights': ['The sigmoid function is created using the mathematical formula 1 / (1 + e^(-t)), enabling the understanding of position as data is densified.', 'The construction of the Sankey chart involves a calculated field that utilizes rank values and the sigmoid function to produce a curve.', 'The concept of nested table calculations is introduced to control how the table calculation processes different fields.', 'The data visualization process involves cosmetic adjustments such as removing grid lines and zero lines, modifying the axis ranges, and changing the visualization from circle to line.']}], 'highlights': ['The method for creating Sankey charts in Tableau was perfected by Chris Love, building off the work of Noah Salvatara and Joe Mako, with initial contributions from Jeffrey Schaefer and Olivia Catherine.', 'Connecting to an Excel file using legacy connection and creating a custom SQL statement Legacy connection using the old Microsoft JET engine is used to connect to the Excel file, followed by creating a custom SQL statement to access specific columns like segment, region, and sales.', 'By unioning the data with the exact same dataset, the total rows effectively doubled to 2,112. The process of unioning the data resulted in the doubling of the total rows to 2,112, effectively increasing the dataset size.', 'Explained the technique of data densification in Tableau, using a calculated field to pad the data with values of 1 for segments and 49 for regions, creating extra marks for smooth visualization.', "Described the creation of calculated fields 'rank 1' and 'rank 2' using running sum and percent of total across the entire data set. The description of creating calculated fields 'rank 1' and 'rank 2' involved using running sum and percent of total across the entire data set to inform line positions.", 'The sigmoid function is created using the mathematical formula 1 / (1 + e^(-t)), enabling the understanding of position as data is densified.', 'The construction of the Sankey chart involves a calculated field that utilizes rank values and the sigmoid function to produce a curve.', 'The concept of nested table calculations is introduced to control how the table calculation processes different fields.', 'The data visualization process involves cosmetic adjustments such as removing grid lines and zero lines, modifying the axis ranges, and changing the visualization from circle to line.', 'African Mobile provided sales data including date, country, city, UN region, segment (commercial, public, residential), and sales and profit numbers.', "The Sankey Diagram tutorial focuses on creating a chart to show the flow between segments and regions using African Mobile's sales data."]}