title
Dynamic Graph based on User Input - Data Visualization GUIs with Dash and Python p.3

description
Welcome to part three of the web-based data visualization with Dash tutorial series. Up to this point, we've learned how to make a simple graph and how to dynamically update HTML elements in real-time without a page refresh. While we were just re-outputting the same text as we input, we can also apply some more logic to the input, and output anything, not just text, such as a graph. That's what we're going to do here. Text tutorials and sample code: https://pythonprogramming.net/dynamic-data-visualization-application-dash-python-tutorial/ Discord: https://discordapp.com/invite/3jCqXJj https://pythonprogramming.net/support-donate/ https://twitter.com/sentdex https://www.facebook.com/pythonprogramming.net/ https://www.twitch.tv/sentdex https://plus.google.com/+sentdex

detail
{'title': 'Dynamic Graph based on User Input - Data Visualization GUIs with Dash and Python p.3', 'heatmap': [{'end': 433.001, 'start': 405.047, 'weight': 0.86}, {'end': 822.844, 'start': 812.579, 'weight': 0.832}], 'summary': 'Tutorial series demonstrates building advanced data visualization applications using python and dash, including graphing various data sets using pandas and pandas data reader, updating graphs for user input, troubleshooting server errors, and creating live updating graphs with dash.', 'chapters': [{'end': 285.553, 'segs': [{'end': 52.463, 'src': 'embed', 'start': 1.889, 'weight': 1, 'content': [{'end': 10.416, 'text': "what's going on everybody and welcome to part three of our data visualization application development tutorial with python and dash.", 'start': 1.889, 'duration': 8.527}, {'end': 19.103, 'text': "in this tutorial what we're doing is building on the last tutorial, where we basically made an interactive ui that accepted some text input, output,", 'start': 10.416, 'duration': 8.687}, {'end': 25.427, 'text': 'that exact text input, and then later we accepted some input and tried to output that input to the power of two.', 'start': 19.103, 'duration': 6.324}, {'end': 31.529, 'text': 'But you can get much more advanced than just that.', 'start': 26.227, 'duration': 5.302}, {'end': 34.851, 'text': "And that's kind of what I want to exemplify here.", 'start': 32.31, 'duration': 2.541}, {'end': 40.273, 'text': "So to begin, I'm going to be using pandas and pandas data reader.", 'start': 35.451, 'duration': 4.822}, {'end': 45.175, 'text': "If you don't have them, you can do a pip install upgrade pandas and pandas data reader.", 'start': 40.373, 'duration': 4.802}, {'end': 50.981, 'text': 'In the future, the methodology that I use here could very well change.', 'start': 46.437, 'duration': 4.544}, {'end': 52.463, 'text': 'If it does,', 'start': 51.522, 'duration': 0.941}], 'summary': 'Part three of data visualization tutorial with python and dash focuses on advanced ui development using pandas and pandas data reader.', 'duration': 50.574, 'max_score': 1.889, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/wv2MXJIdKRY/pics/wv2MXJIdKRY1889.jpg'}, {'end': 90.524, 'src': 'embed', 'start': 66.52, 'weight': 0, 'content': [{'end': 75.271, 'text': 'But basically the objective here for me is to show you that you can create like an input field and then graph based on whatever you type in that input field.', 'start': 66.52, 'duration': 8.751}, {'end': 85.863, 'text': 'So you could graph any sort of symbol like Quandl has all kinds of things that you could chart, from housing markets to finance, to agriculture,', 'start': 75.331, 'duration': 10.532}, {'end': 86.903, 'text': 'study everything.', 'start': 85.863, 'duration': 1.04}, {'end': 88.203, 'text': "they've got just so many data sets.", 'start': 86.903, 'duration': 1.3}, {'end': 90.524, 'text': 'so anyways, this is an example.', 'start': 88.203, 'duration': 2.321}], 'summary': 'Demonstrate creating input field to graph various data sets, such as housing markets and finance, from quandl.', 'duration': 24.004, 'max_score': 66.52, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/wv2MXJIdKRY/pics/wv2MXJIdKRY66520.jpg'}, {'end': 131.482, 'src': 'embed', 'start': 107.23, 'weight': 2, 'content': [{'end': 114.253, 'text': "so what we're gonna do is we're gonna use the pandas data reader, uh, to pull in some stock information.", 'start': 107.23, 'duration': 7.023}, {'end': 118.395, 'text': 'um, based on whatever ticker we want to pass.', 'start': 114.253, 'duration': 4.142}, {'end': 127.82, 'text': "so i think what i'm going to do here is kind of my objective here is to show you kind of in a much more higher level kind of way,", 'start': 118.395, 'duration': 9.425}, {'end': 131.482, 'text': 'how you could piece together an app like this and how truly simple it is.', 'start': 127.82, 'duration': 3.662}], 'summary': 'Using pandas data reader to pull stock information for any ticker, demonstrating how to build a simple app.', 'duration': 24.252, 'max_score': 107.23, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/wv2MXJIdKRY/pics/wv2MXJIdKRY107230.jpg'}, {'end': 187.982, 'src': 'embed', 'start': 155.14, 'weight': 4, 'content': [{'end': 157.261, 'text': "And then you're going to read that stuff into a data frame.", 'start': 155.14, 'duration': 2.121}, {'end': 164.526, 'text': "If you don't know what data frames are and you want to learn basically the low down and skinny of what a data frame is,", 'start': 157.301, 'duration': 7.225}, {'end': 166.707, 'text': "is it's basically like Excel for Python.", 'start': 164.526, 'duration': 2.181}, {'end': 171.55, 'text': "It's just columns and rows, but you can do like a lot of operations, stuff like that.", 'start': 166.727, 'duration': 4.823}, {'end': 172.931, 'text': "So it's kind of like Excel for Python.", 'start': 171.59, 'duration': 1.341}, {'end': 180.315, 'text': 'But if you want to learn more, you can go to PythonProgram.net, go to data analysis, and I have a whole series on doing data analysis with pandas.', 'start': 173.711, 'duration': 6.604}, {'end': 187.982, 'text': "Anyway, with that let's go ahead and run this real quick, just so you can kind of see what's going on here.", 'start': 181.957, 'duration': 6.025}], 'summary': 'Data frame in python is like excel, with columns and rows for operations. for more, visit pythonprogram.net.', 'duration': 32.842, 'max_score': 155.14, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/wv2MXJIdKRY/pics/wv2MXJIdKRY155140.jpg'}], 'start': 1.889, 'title': 'Data visualization and pandas data reader', 'summary': 'Covers building advanced data visualization application using python and dash, including input field utilization to graph various data sets using pandas and pandas data reader. it also demonstrates using pandas data reader to pull stock information and visualize it in a simple graph using python and dash.', 'chapters': [{'end': 107.23, 'start': 1.889, 'title': 'Data visualization with python & dash', 'summary': 'Focuses on building an advanced data visualization application using python and dash, demonstrating the utilization of input fields to graph various data sets using pandas and pandas data reader.', 'duration': 105.341, 'highlights': ['The tutorial builds on an interactive UI developed in the last part, allowing input and output of text, with subsequent enhancement to accept input and output its square value.', "The tutorial emphasizes the use of pandas and pandas data reader for advanced data visualization, encouraging viewers to install the required packages through 'pip install upgrade pandas' and 'pandas data reader'.", 'The objective is to showcase the creation of an input field to graph data based on user input, illustrating the potential to graph various symbols such as those available through Quandl, covering diverse datasets from housing markets to finance and agriculture.', 'The chapter aims to demonstrate the versatility of input fields for graphing data, assuring viewers that the example is not solely finance-related but simply involves organized data by date.']}, {'end': 285.553, 'start': 107.23, 'title': 'Using pandas data reader for stock information', 'summary': 'Demonstrates using the pandas data reader to pull stock information, displaying how to read data into a data frame and visualize it in a simple graph using python and dash.', 'duration': 178.323, 'highlights': ['The chapter demonstrates using the Pandas data reader to pull stock information based on any ticker and shows the simplicity of piecing together an app like this.', 'It explains the process of reading data into a data frame, which functions like Excel for Python, allowing various operations to be performed.', 'The tutorial suggests checking out PythonProgram.net for a series on data analysis with pandas, providing additional learning resources for data analysis.', 'The chapter also includes troubleshooting steps and server issues encountered during the process of running the code, demonstrating real-time problem-solving.', 'It also shows how to visualize the stock data in a simple graph using Python and Dash, with a demonstration of server restart and code modification for the graph.', 'The demonstration includes troubleshooting steps and server restart to address issues encountered during the process of running the code, showcasing real-time problem-solving.']}], 'duration': 283.664, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/wv2MXJIdKRY/pics/wv2MXJIdKRY1889.jpg', 'highlights': ['The chapter aims to demonstrate the versatility of input fields for graphing data, assuring viewers that the example is not solely finance-related but simply involves organized data by date.', "The tutorial emphasizes the use of pandas and pandas data reader for advanced data visualization, encouraging viewers to install the required packages through 'pip install upgrade pandas' and 'pandas data reader'.", 'The chapter demonstrates using the Pandas data reader to pull stock information based on any ticker and shows the simplicity of piecing together an app like this.', 'The tutorial builds on an interactive UI developed in the last part, allowing input and output of text, with subsequent enhancement to accept input and output its square value.', 'It explains the process of reading data into a data frame, which functions like Excel for Python, allowing various operations to be performed.']}, {'end': 770.101, 'segs': [{'end': 312.174, 'src': 'embed', 'start': 285.553, 'weight': 2, 'content': [{'end': 292.479, 'text': "so now what we want to do is that, rather than making this graph, let's graph the pandas graph instead.", 'start': 285.553, 'duration': 6.926}, {'end': 300.567, 'text': "So basically what we're going to do is we need to bring in those imports from pandas for the data reader and the date time.", 'start': 292.6, 'duration': 7.967}, {'end': 304.151, 'text': 'So if I just come over here, like this is the script that we were using.', 'start': 300.627, 'duration': 3.524}, {'end': 307.252, 'text': "Basically like I'm gonna need all this information here.", 'start': 304.751, 'duration': 2.501}, {'end': 312.174, 'text': "So if I came down here pasted that in Let's make the end time.", 'start': 307.692, 'duration': 4.482}], 'summary': 'Switching from a regular graph to a pandas graph for data analysis.', 'duration': 26.621, 'max_score': 285.553, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/wv2MXJIdKRY/pics/wv2MXJIdKRY285553.jpg'}, {'end': 376.956, 'src': 'embed', 'start': 342.62, 'weight': 3, 'content': [{'end': 345.182, 'text': "And then rather than Tesla there, we'll just throw it in there.", 'start': 342.62, 'duration': 2.562}, {'end': 356.483, 'text': 'Okay, now inside of this graph layout, the ID, we can still keep that example graph.', 'start': 347.938, 'duration': 8.545}, {'end': 360.826, 'text': "The title should now be, let's just make the title stock.", 'start': 357.024, 'duration': 3.802}, {'end': 364.488, 'text': "And then let's get rid of one of these X and Ys.", 'start': 361.186, 'duration': 3.302}, {'end': 368.05, 'text': "We're going to leave the line version.", 'start': 366.61, 'duration': 1.44}, {'end': 376.956, 'text': 'And then rather than being the SF example, we can bring in Tesla or rather stock.', 'start': 368.07, 'duration': 8.886}], 'summary': "Adjust graph layout, change title to 'stock', and include tesla data.", 'duration': 34.336, 'max_score': 342.62, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/wv2MXJIdKRY/pics/wv2MXJIdKRY342620.jpg'}, {'end': 452.876, 'src': 'heatmap', 'start': 405.047, 'weight': 0, 'content': [{'end': 406.908, 'text': "We don't need this either.", 'start': 405.047, 'duration': 1.861}, {'end': 407.928, 'text': 'We really could just do.', 'start': 407.028, 'duration': 0.9}, {'end': 412.291, 'text': 'Oh my god, finance.', 'start': 411.59, 'duration': 0.701}, {'end': 416.017, 'text': 'Okay Hopefully that updates.', 'start': 413.693, 'duration': 2.324}, {'end': 416.598, 'text': "Let's see.", 'start': 416.057, 'duration': 0.541}, {'end': 417.839, 'text': "It says it's restarted.", 'start': 416.678, 'duration': 1.161}, {'end': 420.664, 'text': "Let's see if the Dash Gods approve.", 'start': 418.48, 'duration': 2.184}, {'end': 424.316, 'text': 'And they do, whoa, okay.', 'start': 422.335, 'duration': 1.981}, {'end': 433.001, 'text': 'So it was that simple to bring in the graph into dash.', 'start': 424.736, 'duration': 8.265}, {'end': 447.57, 'text': 'Now, how much more challenging might it be for us to instead bring in have this live like let the user type in the actual ticker rather than hard coding it in the script?', 'start': 433.642, 'duration': 13.928}, {'end': 452.876, 'text': "So now what we're gonna do is bebop on back over to our script arena here.", 'start': 448.214, 'duration': 4.662}], 'summary': 'Successfully integrated graph into dash. now considering making ticker user-input.', 'duration': 34.396, 'max_score': 405.047, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/wv2MXJIdKRY/pics/wv2MXJIdKRY405047.jpg'}, {'end': 586.923, 'src': 'embed', 'start': 558.258, 'weight': 1, 'content': [{'end': 560.878, 'text': "um, okay, so that's our input.", 'start': 558.258, 'duration': 2.62}, {'end': 564.059, 'text': "now what we're going to want to have is somewhere to stuff the output.", 'start': 560.878, 'duration': 3.181}, {'end': 566.78, 'text': "so we're going to do that in an html dot div.", 'start': 564.059, 'duration': 2.721}, {'end': 569.961, 'text': 'so a div tag id will be output.', 'start': 566.78, 'duration': 3.181}, {'end': 572.57, 'text': 'dash graph Cool.', 'start': 569.961, 'duration': 2.609}, {'end': 576.694, 'text': 'So now what we have to do is, like we had before, we need that callback.', 'start': 573.051, 'duration': 3.643}, {'end': 578.816, 'text': "So we're going to make app.callback.", 'start': 576.794, 'duration': 2.022}, {'end': 586.923, 'text': "And again, it'll just be a nice little wrapper that contains output from this time the, oh, we didn't import them.", 'start': 579.576, 'duration': 7.347}], 'summary': "Creating an output in an html div tag with an id 'output' using app.callback.", 'duration': 28.665, 'max_score': 558.258, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/wv2MXJIdKRY/pics/wv2MXJIdKRY558258.jpg'}, {'end': 770.101, 'src': 'embed', 'start': 739.463, 'weight': 5, 'content': [{'end': 749.292, 'text': "And because I've already shown you the code to graph it, just for the sake of doing it, The code to graph it was with DCC.", 'start': 739.463, 'duration': 9.829}, {'end': 752.974, 'text': 'So it was this dcc.graph and then all this stuff.', 'start': 749.332, 'duration': 3.642}, {'end': 754.914, 'text': "You've seen it before.", 'start': 754.134, 'duration': 0.78}, {'end': 760.497, 'text': 'Rather than graphing it, all we really need to do is return it.', 'start': 757.095, 'duration': 3.402}, {'end': 761.977, 'text': "Because it's going to be a part of that.", 'start': 760.937, 'duration': 1.04}, {'end': 767.24, 'text': "It's just going to be a child of that div right here.", 'start': 762.057, 'duration': 5.183}, {'end': 770.101, 'text': "Okay I believe we're ready.", 'start': 768.28, 'duration': 1.821}], 'summary': 'Code to graph data with dcc, now ready for implementation.', 'duration': 30.638, 'max_score': 739.463, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/wv2MXJIdKRY/pics/wv2MXJIdKRY739463.jpg'}], 'start': 285.553, 'title': 'Graphing stock data and updating graphs in dash', 'summary': 'Includes modifying a script to graph stock data with pandas and updating a graph in dash to allow user input for the ticker, utilizing elements such as div tags, input fields, and callbacks.', 'chapters': [{'end': 417.839, 'start': 285.553, 'title': 'Graphing stock data with pandas', 'summary': 'Modifying a script to graph stock data using pandas, including importing necessary libraries, defining stock information, and adjusting the graph layout.', 'duration': 132.286, 'highlights': ['Importing necessary libraries from Pandas for data reader and date time, and modifying the script to include this information.', 'Defining stock information for Tesla, bringing in the actual stock information and adjusting the graph layout.']}, {'end': 770.101, 'start': 418.48, 'title': 'Updating graph in dash', 'summary': 'Details the process of updating a graph in dash to allow user input for the ticker, utilizing elements such as div tags, input fields, and callbacks, as well as dynamically pulling and graphing data.', 'duration': 351.621, 'highlights': ['The chapter discusses bringing in live user input for the ticker in a graph in Dash, showcasing the use of div tags and input fields for this purpose.', 'It explains the process of utilizing callbacks to update the graph based on user input, demonstrating the use of app.callback and input/output components.', 'The chapter also covers dynamically pulling data and graphing it based on user input, emphasizing the use of update functions and the dcc.graph element.']}], 'duration': 484.548, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/wv2MXJIdKRY/pics/wv2MXJIdKRY285553.jpg', 'highlights': ['Modifying script to graph stock data with Pandas and updating graph in Dash', 'Utilizing elements such as div tags, input fields, and callbacks for user input in graph', 'Importing necessary libraries from Pandas for data reader and date time', 'Defining stock information for Tesla and adjusting graph layout', 'Showcasing the use of app.callback and input/output components for updating the graph based on user input', 'Dynamically pulling data and graphing it based on user input using update functions and dcc.graph element']}, {'end': 989.218, 'segs': [{'end': 839.13, 'src': 'heatmap', 'start': 812.579, 'weight': 0, 'content': [{'end': 813.299, 'text': 'We can hope and pray.', 'start': 812.579, 'duration': 0.72}, {'end': 815.06, 'text': 'Oh, oh, oh.', 'start': 813.619, 'duration': 1.441}, {'end': 818.982, 'text': 'Are the gods favoring us today? They might be.', 'start': 816.321, 'duration': 2.661}, {'end': 822.844, 'text': 'Nice Okay.', 'start': 821.984, 'duration': 0.86}, {'end': 826.326, 'text': "The app actually works and we didn't have to restart the server.", 'start': 822.964, 'duration': 3.362}, {'end': 827.086, 'text': 'Thank the Lord.', 'start': 826.446, 'duration': 0.64}, {'end': 832.207, 'text': "Okay Okay, so that's a slightly more complex example.", 'start': 827.567, 'duration': 4.64}, {'end': 839.13, 'text': "So going from just re-outputting the same text that we've input to running a really simple function on that input,", 'start': 832.267, 'duration': 6.863}], 'summary': 'App works without server restart, progressing to complex functions.', 'duration': 67.809, 'max_score': 812.579, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/wv2MXJIdKRY/pics/wv2MXJIdKRY812579.jpg'}, {'end': 909.711, 'src': 'embed', 'start': 866.227, 'weight': 1, 'content': [{'end': 873.173, 'text': "and to make it update live like that, you'd have to know so many like different little things and it would take a while,", 'start': 866.227, 'duration': 6.946}, {'end': 875.134, 'text': 'whereas this is just so simple.', 'start': 873.173, 'duration': 1.961}, {'end': 876.996, 'text': 'like you just.', 'start': 875.134, 'duration': 1.862}, {'end': 878.797, 'text': 'ah, i really like dash.', 'start': 876.996, 'duration': 1.801}, {'end': 879.938, 'text': "i'm really impressed.", 'start': 878.797, 'duration': 1.141}, {'end': 885.488, 'text': 'the server thing is annoying, but The ease with which you can make these apps is just crazy.', 'start': 879.938, 'duration': 5.55}, {'end': 891.655, 'text': "And it's almost like, honestly, it's tempting to use Dash to do a lot of stuff that isn't even graph-related.", 'start': 886.029, 'duration': 5.626}, {'end': 894.398, 'text': "I just haven't seen a framework.", 'start': 891.675, 'duration': 2.723}, {'end': 896.521, 'text': 'I wish you could do this sort of thing.', 'start': 894.459, 'duration': 2.062}, {'end': 897.542, 'text': 'And maybe you can.', 'start': 896.821, 'duration': 0.721}, {'end': 902.308, 'text': 'I would expect Django to be able to do live updating stuff with React and stuff.', 'start': 897.762, 'duration': 4.546}, {'end': 909.711, 'text': "This simply, but to my knowledge It doesn't at least come out of the box doing that.", 'start': 904.009, 'duration': 5.702}], 'summary': 'Dash impresses with its ease of app creation and live updating capabilities.', 'duration': 43.484, 'max_score': 866.227, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/wv2MXJIdKRY/pics/wv2MXJIdKRY866227.jpg'}, {'end': 971.441, 'src': 'embed', 'start': 949.132, 'weight': 4, 'content': [{'end': 957.995, 'text': "So, as in the next tutorial, what I'm going to do is show how we can create live updating graphs That just update based on like an interval,", 'start': 949.132, 'duration': 8.863}, {'end': 963.636, 'text': 'kind of like the the matplotlib graphs and stuff, and pretty much everything is going to update based on an interval.', 'start': 957.995, 'duration': 5.641}, {'end': 971.441, 'text': "usually it's a little more challenging to update based on an like a, like a database update or something like that, but, as you could imagine,", 'start': 963.636, 'duration': 7.805}], 'summary': 'The next tutorial will demonstrate creating live updating graphs with intervals.', 'duration': 22.309, 'max_score': 949.132, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/wv2MXJIdKRY/pics/wv2MXJIdKRY949132.jpg'}], 'start': 771.321, 'title': 'Troubleshooting server errors and creating live updating graphs with dash', 'summary': 'Describes troubleshooting a server error and successfully running a complex function, and covers creating live updating graphs using dash, emphasizing its advantages and potential for non-graph related tasks.', 'chapters': [{'end': 839.13, 'start': 771.321, 'title': 'Troubleshooting server error', 'summary': 'Describes the process of troubleshooting a server error, encountering invalid syntax and finally successfully running a complex function without having to restart the server.', 'duration': 67.809, 'highlights': ['Successfully running a complex function without having to restart the server', 'Encountering invalid syntax while running the code', 'Expressing frustration and annoyance at encountering an error and having to restart the server']}, {'end': 989.218, 'start': 839.13, 'title': 'Creating live updating graphs with dash', 'summary': 'Covers the simplicity and ease of creating live updating graphs using dash, highlighting its advantages over other frameworks and its potential for non-graph related tasks, with plans to demonstrate creating live updating graphs in the next tutorial.', 'duration': 150.088, 'highlights': ['The ease with which you can make these apps is just crazy, making live updating graphs simple and efficient compared to other frameworks.', 'Dash is tempting to use for tasks not even graph-related, showcasing its potential for various applications beyond graph creation.', "Plans to demonstrate creating live updating graphs in the next tutorial, indicating a practical example of Dash's capabilities.", 'Comparison of Dash with other frameworks like flask, plotly, bokeh, and Django, emphasizing its simplicity and efficiency in creating live updating graphs.']}], 'duration': 217.897, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/wv2MXJIdKRY/pics/wv2MXJIdKRY771321.jpg', 'highlights': ['Successfully running a complex function without having to restart the server', 'The ease with which you can make these apps is just crazy, making live updating graphs simple and efficient compared to other frameworks', 'Comparison of Dash with other frameworks like flask, plotly, bokeh, and Django, emphasizing its simplicity and efficiency in creating live updating graphs', 'Dash is tempting to use for tasks not even graph-related, showcasing its potential for various applications beyond graph creation', "Plans to demonstrate creating live updating graphs in the next tutorial, indicating a practical example of Dash's capabilities", 'Encountering invalid syntax while running the code', 'Expressing frustration and annoyance at encountering an error and having to restart the server']}], 'highlights': ["The tutorial emphasizes the use of pandas and pandas data reader for advanced data visualization, encouraging viewers to install the required packages through 'pip install upgrade pandas' and 'pandas data reader'.", 'The chapter aims to demonstrate the versatility of input fields for graphing data, assuring viewers that the example is not solely finance-related but simply involves organized data by date.', 'The chapter demonstrates using the Pandas data reader to pull stock information based on any ticker and shows the simplicity of piecing together an app like this.', 'Modifying script to graph stock data with Pandas and updating graph in Dash', 'The tutorial builds on an interactive UI developed in the last part, allowing input and output of text, with subsequent enhancement to accept input and output its square value.', 'Comparison of Dash with other frameworks like flask, plotly, bokeh, and Django, emphasizing its simplicity and efficiency in creating live updating graphs', 'Successfully running a complex function without having to restart the server', 'Dash is tempting to use for tasks not even graph-related, showcasing its potential for various applications beyond graph creation', 'The ease with which you can make these apps is just crazy, making live updating graphs simple and efficient compared to other frameworks', "Plans to demonstrate creating live updating graphs in the next tutorial, indicating a practical example of Dash's capabilities"]}