Plotting Multiple Stock Prices Simultaneously

Python 3: Automating Your Job Tasks Superhero Level: Data Visualization with Bokeh and Python 3
9 minutes
Share the link to this page
You need to have access to the item to view this lesson.
One-time Fee
List Price:  $139.99
You save:  $40
List Price:  €128.82
You save:  €36.80
List Price:  £109.74
You save:  £31.35
List Price:  CA$191.13
You save:  CA$54.61
List Price:  A$210.68
You save:  A$60.19
List Price:  S$188.83
You save:  S$53.95
List Price:  HK$1,092.95
You save:  HK$312.29
CHF 91.34
List Price:  CHF 127.88
You save:  CHF 36.54
NOK kr1,052.31
List Price:  NOK kr1,473.28
You save:  NOK kr420.96
DKK kr686.58
List Price:  DKK kr961.24
You save:  DKK kr274.66
List Price:  NZ$227.97
You save:  NZ$65.13
List Price:  د.إ514.17
You save:  د.إ146.91
List Price:  ৳16,408.23
You save:  ৳4,688.40
List Price:  ₹11,637.16
You save:  ₹3,325.14
List Price:  RM657.67
You save:  RM187.92
List Price:  ₦206,269.66
You save:  ₦58,938.40
List Price:  ₨38,916.02
You save:  ₨11,119.65
List Price:  ฿5,127.43
You save:  ฿1,465.08
List Price:  ₺4,505.30
You save:  ₺1,287.32
List Price:  B$723.91
You save:  B$206.84
List Price:  R2,571.91
You save:  R734.88
List Price:  Лв252.38
You save:  Лв72.11
List Price:  ₩190,499.14
You save:  ₩54,432.21
List Price:  ₪515.38
You save:  ₪147.26
List Price:  ₱8,140.48
You save:  ₱2,326.02
List Price:  ¥21,963.82
You save:  ¥6,275.82
List Price:  MX$2,336.09
You save:  MX$667.50
List Price:  QR510.10
You save:  QR145.75
List Price:  P1,900.64
You save:  P543.07
List Price:  KSh18,618.67
You save:  KSh5,320
List Price:  E£6,599.78
You save:  E£1,885.78
List Price:  ብር8,037.80
You save:  ብር2,296.67
List Price:  Kz118,908.34
You save:  Kz33,976.24
List Price:  CLP$126,117.11
You save:  CLP$36,036.03
List Price:  CN¥1,014.10
You save:  CN¥289.76
List Price:  RD$8,237.97
You save:  RD$2,353.87
List Price:  DA18,843.53
You save:  DA5,384.25
List Price:  FJ$311.92
You save:  FJ$89.12
List Price:  Q1,086.64
You save:  Q310.49
List Price:  GY$29,266.81
You save:  GY$8,362.54
ISK kr13,793.62
List Price:  ISK kr19,311.62
You save:  ISK kr5,518
List Price:  DH1,395.33
You save:  DH398.69
List Price:  L2,480.56
You save:  L708.78
List Price:  ден7,930.17
You save:  ден2,265.92
List Price:  MOP$1,125.70
You save:  MOP$321.65
List Price:  N$2,570.90
You save:  N$734.59
List Price:  C$5,148.73
You save:  C$1,471.17
List Price:  रु18,603.56
You save:  रु5,315.68
List Price:  S/522.95
You save:  S/149.42
List Price:  K543.64
You save:  K155.33
List Price:  SAR525.05
You save:  SAR150.02
List Price:  ZK3,733.66
You save:  ZK1,066.83
List Price:  L641.14
You save:  L183.19
List Price:  Kč3,187.01
You save:  Kč910.64
List Price:  Ft49,549.41
You save:  Ft14,157.98
SEK kr1,062.40
List Price:  SEK kr1,487.41
You save:  SEK kr425
List Price:  ARS$124,696.09
You save:  ARS$35,630
List Price:  Bs966.60
You save:  Bs276.19
List Price:  COP$540,370.17
You save:  COP$154,402.50
List Price:  ₡71,720.93
You save:  ₡20,493.15
List Price:  L3,457
You save:  L987.78
List Price:  ₲1,052,195.01
You save:  ₲300,648.62
List Price:  $U5,389.29
You save:  $U1,539.90
List Price:  zł547.82
You save:  zł156.53
Already have an account? Log In


Hey, welcome back. I hope you're enjoying this section so far. In this lecture, we are going to learn how to plot multiple stock prices on the same chart. Actually, let me show you how the final plot looks like. And then we're going to dive into the code. So the plot you're seeing on the screen right now is the final result that we are looking to achieve.

We have the price evolution of four different stocks, Apple, Google, IBM, and Microsoft, each line having a different color. We also have the x and y axis along with axes, labels, date and price, and also some tickers that illustrate various values along the axis. Additionally, we have a legend and the interactive toolbar on the right side of the plot. Now let's have a look at the code for this application. And as always, I'm going to create a new notebook and I'm going to call this notebook stop. This notebook is going to be stored in the same folder on my D drive called plots.

Now let me paste in the code so you can see it. Okay, this is the code right here. One thing I should mention before starting our discussion is that in this application, we are not loading any external data like we previously did with Excel and CSV files. Instead, we are going to use some of bouquets own sample data that is available for learning and testing purposes. By default, this sample data is not stored anywhere on your computer. So in order to use it, you have to download it and I'm going to show you how right now, I've also added the necessary code for downloading this data at the very beginning of our application.

So go ahead and open up the Python interpreter. And all you have to do is import balki dot sample data. And now just run balki dot sample data dot Download, open and close parenthesis. Now I'm not going to hit enter for this line of code. Since I already downloaded the sample data. However, you should do it on your own computer and then wait until the download is complete.

Once you have everything in place, we can then move on to our application code. So let's head over to the code. And let's import the necessary modules and tools for this application. First, I'm going to import the NumPy module, which is a very large and comprehensive library that performs scientific computing in Python. In case you don't have NumPy already installed, just open up the windows command line. So CMD and type in pip install NumPy and hit enter.

I already have this module installed, so I won't do it again. Also, notice that you can use an alias for this module inside our code using the as keyword right here to be able to easily reference it This module in the code below. Next, we are importing the figure show and output file functions that we've already seen and used in the previous lectures. And finally, we should also import the sample data that we need from the bouquet library to feed our plot with. That would be the four sets of data corresponding to the historical prices of Apple, Google, IBM, and Microsoft stocks. Next, we are creating a small function called daytime right here, which takes a single parameter x and returns a NumPy array.

A NumPy array is basically a table of elements or a container of items all have the same type. Now let's go to the Python interpreter a bit to show you the role of this array here. So let's import the AAPL set of sample data corresponding to the stock prices of apple. So from Bo k dot sample, the dot dot thoughts. import a bl, enter. Now let's see the actual data abl.

Notice that since this is a huge chunk of data, the Python interpreter shows this button right here stating that there are over 2000 lines, thus avoiding flooding the screen with all of this data and making the interpreter slow and unresponsive. You can double click this bottom to see everything, but I really don't recommend that. Or you can just right click the bottom and select copy and then paste the data to a new file in Notepad plus plus, like this. Either way, the thing you should remember is that a PL is a dictionary. So let's hit type of a PL class dict. Okay, let's see the keys in this dictionary.

So we have a b l dot keys. Okay, so this dictionary contains the dates along with the opening highest lowest closing adjusted closing prices for the apple stocks as well as the daily trading volume. Now let's see the value associated with the date key inside the dictionary, which is actually a list of all the dates when the stock prices have been recorded. So to do that, we would need to use a bl, of date, enter. Let me double click this, although I think it will make my computer a bit slow. Okay, so now we know that down below in our code, let me get back to the code.

Our date time function for example, here on this line is going to take this list of strings, this one right here and converted to a NumPy array of dates times by also specifying the type of the array as being daytime 64. This daytime 64 name, as you can see, right here d type equals NP dot daytime 64. This name is due to the fact that the name date time was already taken by the needs time Python built in module. Of course, the same conversion from a list of strings to an array of date times will be performed for all the stocks that we are considering for this plot. That's why our date time function is going to be called once for each stock when drawing the lines in this section of the code. Now after we have defined our custom function, we are creating the figure object and passing two arguments only.

The first argument is the type of the x axis which is date time, we are basically specifying that this axis represents time and as you can notice on the plot, so let me run this. So as you can notice, here, the even years have been extracted from our sample data set and displayed on the x axis we have 2000 2002 2004 and so on. This is done automatically by balki. So you don't need to worry too much about any other details. Now back to our code. The second argument in between parentheses is the title of our figure, which is stock prices.

Next, we are configuring several other styling features for this plot. The grid line alpha attributes sets the intensity of the grid lines, a smaller alpha will make the gridlines almost invisible once the huge alpha value will make them stand out. Also, we are setting the labels for each of the axes. So you can notice this on the plot as well we have date for the x axis and price for the y axis. Next, using the line method applied to the figure object, we are drawing a line on the plot for each of the four stocks. As we discussed earlier, the first argument that we need to pass to the line method is the result returned by the date time function applied on the list of dates corresponding to each stock, this would be the x coordinate.

The next argument is the list of adjusted clothes. Prices for each date, and this would be the y coordinate. Finally, the last two arguments help us configure a separate color and legend for each line. After drawing these four lines, we are also setting the location of the legend to top left the name of the output file to stocks dot html, and a new thing here the title of the output file, which is going to be shown as the name of that specific tab in the browser. So notice that this tab right here, the one in which the output file is loaded, has this title set stocks comparison, instead of the default title, which would be bulky plot. Last but not least, we use the show function as always, to display our figure object.

And that's it. Now we can run our code for the last time and this is how you can plot several stock prices on the same figure. I hope you enjoyed this lecture. And I will see you in the next one to build on other cool plot.

Sign Up


Share with friends, get 20% off
Invite your friends to LearnDesk learning marketplace. For each purchase they make, you get 20% off (upto $10) on your next purchase.