Bokeh数据可视化工具2绘图进阶

其他数据结构绘图

使用numpy创建线状图

#Creating line plots using NumPy arrays#Import required packagesimport numpy as npimport randomfrom bokeh.io import output_file, showfrom bokeh.plotting import figure#Creating an array for the points along the x and y axesarray_x =np.array([1,2,3,4,5,6])array_y = np.array([5,6,7,8,9,10])#Creating a line plotplot = figure()plot.line(array_x, array_y)#Output the plotoutput_file('numpy_line.html')show(plot)
Bokeh数据可视化工具2绘图进阶
image.png

使用numpy创建散列图

#Creating scatter plots using NumPy arrays#Import required packagesimport numpy as npimport randomfrom bokeh.io import output_file, showfrom bokeh.plotting import figure#Creating arrays for two different categories of pointsx_red = np.array([1,2,3,4,5])y_red = np.array([5,6,7,8,9])x_blue = np.array([10,11,12,13])y_blue = np.array([14,15,16,17])#Creating the categorical scatter plot plot = figure()plot.circle(x_red, y_red, size = 9, color = 'red', alpha = 0.8)plot.circle(x_blue, y_blue, size = 9, color = 'blue', alpha = 0.8)#Output the plot output_file('numpy_scatter.html')show(plot)
Bokeh数据可视化工具2绘图进阶
image.png

使用pandas DataFrame创建时序图

苹果股票的高值:

#Creating a time series plot using a Pandas DataFrame#Importing the required packagesimport pandas as pd#Read in the datadf = pd.read_csv('/home/andrew/code/kaggle-code/stock_data/all_stocks_5yr.csv')#Filtering for apple stocksdf_apple = df[df['Name'] == 'AAL']#df_apple.loc['date'] = df_apple['date'].astype('datetime64')df_apple['date'] = pd.to_datetime(df_apple['date'])print(df_apple.dtypes)#Import the required packagesfrom bokeh.io import output_file, showfrom bokeh.plotting import figure#Create the time series plotplot = figure(x_axis_type = 'datetime', x_axis_label = 'date', y_axis_label = 'High Prices')plot.line(x = df_apple['date'], y = df_apple['high'])#Output the plotoutput_file('pandas_time.html')show(plot)
Bokeh数据可视化工具2绘图进阶
image.png
  • 参考资料

https://pandas.pydata.org/pandas-docs/stable/generated/pandas.to_datetime.html
https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.astype.html
https://stackoverflow.com/questions/20625582/how-to-deal-with-settingwithcopywarning-in-pandas

另外一个更简单的演示:

import pandas as pdimport numpy as npfrom bokeh.plotting import figure, output_file, showfrom bokeh.layouts import rowoutput_file('fig.html')test = pd.DataFrame({'datetime':pd.date_range('1/1/1880', periods=2000),'foo':np.arange(2000)})print(test['datetime'])fig = figure(x_axis_type="datetime")fig.line(x='datetime',y='foo', source=test)test = test.set_index('datetime')fig2 = figure(x_axis_type="datetime")fig2.line(x='datetime', y='foo', source=test)show(row(fig, fig2))
Bokeh数据可视化工具2绘图进阶
image.png
  • 参考资料

https://stackoverflow.com/questions/34974615/timeseries-in-bokeh-using-a-dataframe-with-index

https://bokeh.pydata.org/en/latest/docs/user_guide/plotting.html

https://github.com/CNuge/kaggle-code

  • 同一行创建多个图
  • 同一列创建多个图
  • 行和列中创建多个图
  • 选项卡式布局创建多个绘图
  • 创建强大的网格布局
  • 将多个图表链接在一起

同一行创建多个图

bokeh自带了很多数据,可以用如下方式下载:

In [2]: import bokehIn [3]: bokeh.sampledata.download()Creating /home/andrew/.bokeh directoryCreating /home/andrew/.bokeh/data directoryUsing data directory: /home/andrew/.bokeh/dataDownloading: CGM.csv (1589982 bytes)   1589982 [100.00%]Downloading: US_Counties.zip (3182088 bytes)   3182088 [100.00%]Unpacking: US_Counties.csvDownloading: us_cities.json (713565 bytes)    713565 [100.00%]Downloading: unemployment09.csv (253301 bytes)    253301 [100.00%]Downloading: AAPL.csv (166698 bytes)    166698 [100.00%]Downloading: FB.csv (9706 bytes)      9706 [100.00%]Downloading: GOOG.csv (113894 bytes)    113894 [100.00%]Downloading: IBM.csv (165625 bytes)    165625 [100.00%]Downloading: MSFT.csv (161614 bytes)    161614 [100.00%]Downloading: WPP2012_SA_DB03_POPULATION_QUINQUENNIAL.zip (5148539 bytes)   5148539 [100.00%]Unpacking: WPP2012_SA_DB03_POPULATION_QUINQUENNIAL.csvDownloading: gapminder_fertility.csv (64346 bytes)     64346 [100.00%]Downloading: gapminder_population.csv (94509 bytes)     94509 [100.00%]Downloading: gapminder_life_expectancy.csv (73243 bytes)     73243 [100.00%]Downloading: gapminder_regions.csv (7781 bytes)      7781 [100.00%]Downloading: world_cities.zip (646858 bytes)    646858 [100.00%]Unpacking: world_cities.csvDownloading: airports.json (6373 bytes)      6373 [100.00%]Downloading: movies.db.zip (5067833 bytes)   5067833 [100.00%]Unpacking: movies.dbDownloading: airports.csv (203190 bytes)    203190 [100.00%]Downloading: routes.csv (377280 bytes)    377280 [100.00%]
#Preparing all the plots needed for this chapterimport pandas as pdfrom bokeh.sampledata.stocks import AAPLdf_apple = pd.DataFrame(AAPL)df_apple['date'] = pd.to_datetime(df_apple['date'])#Import the required packagesfrom bokeh.io import output_file, showfrom bokeh.plotting import figurefrom bokeh.plotting import ColumnDataSource#Create the ColumnDataSource objectdata = ColumnDataSource(data = {    'x' : df_apple['high'],    'y' : df_apple['low'],    'x1': df_apple['open'],    'y1': df_apple['close'],    'x2': df_apple['date'],    'y2': df_apple['volume'], })#Create the first scatter plotplot1 = figure()plot1.cross(x = 'x', y = 'y', source = data, color = 'red', size = 10, alpha = 0.8)#Create the second scatter plotplot2 = figure()plot2.circle(x = 'x1', y = 'y1', source = data, color = 'green', size = 10, alpha = 0.3)#Create the third scatter plotplot3 = figure(x_axis_type = 'datetime', x_axis_label = 'date', y_axis_label = 'Volume Traded')plot3.line(x = 'x2', y = 'y2', source = data, color = 'red')plot3.circle(x = 'x2', y = 'y2', source = data, fill_color = 'white', size = 3)#Output the 3 plots#Output the plot1output_file('first_plot.html')show(plot1)#Output the plot2output_file('second_plot.html')show(plot2)#Output the plot3output_file('third_plot.html')show(plot3)#Creating multiple plots along the same row#Import the required packagesfrom bokeh.layouts import rowfrom bokeh.io import output_file, show#Group the 3 plots into a 'row' layoutrow_layout = row(plot1,plot2,plot3)#Output the plotoutput_file('horizontal.html')show(row_layout)#Creating multiple plots along the same column#Import the required packagesfrom bokeh.layouts import columnfrom bokeh.io import output_file, show#Group the 2 plots into a 'column' layoutcol_layout = column(plot1,plot2)#Output the plotoutput_file('vertical.html')show(col_layout)#Creating multiple plots along a row and column#Import the required packagesfrom bokeh.layouts import column, rowfrom bokeh.io import output_file, show#Construct the nested layoutnested_layout = column(row(plot1,plot2), plot3)#Output the plotoutput_file('nested.html')show(nested_layout)#Creating multiple plots on a tabbed layout#Import the required packagesfrom bokeh.models.widgets import Tabs, Panelfrom bokeh.io import output_file, showfrom bokeh.layouts import column, row#Create the two panels tab1 = Panel(child = plot1, title = 'Tab One')tab2 = Panel(child = column(plot2,plot3), title = 'Tab Two')#Feed the tabs into a Tabs objecttabs_object = Tabs(tabs = [tab1, tab2])#Output the plotoutput_file('tab_layout.html')show(tabs_object)#Creating a grid layout#Import required packagesfrom bokeh.io import output_file, showfrom bokeh.layouts import gridplot#Create the grid layoutgrid_layout = gridplot([plot1, plot2], [plot3, None])#Output the plotoutput_file('grid.html')show(grid_layout)#Linking multiple plots along the y axis#Import the required packagesfrom bokeh.io import output_file, showfrom bokeh.layouts import row#Creating equal y axis rangesplot3.y_range = plot1.y_range#Create the row layoutrow_layout = row(plot3, plot1)#Output the plotoutput_file('grid.html')show(row_layout)#Linking multiple plots along the x axis#Import the required packagesfrom bokeh.io import output_file, showfrom bokeh.layouts import row#Creating equal x-axis rangesplot2.x_range = plot1.x_range#Create the row layoutrow_layout = row(plot2, plot1)#Output the plotoutput_file('row.html')show(row_layout)
Bokeh数据可视化工具2绘图进阶
图片.png
Bokeh数据可视化工具2绘图进阶
图片.png
Bokeh数据可视化工具2绘图进阶
图片.png
Bokeh数据可视化工具2绘图进阶
图片.png
Bokeh数据可视化工具2绘图进阶
图片.png
Bokeh数据可视化工具2绘图进阶
图片.png
Bokeh数据可视化工具2绘图进阶
图片.png
Bokeh数据可视化工具2绘图进阶
图片.png
Bokeh数据可视化工具2绘图进阶
图片.png
Bokeh数据可视化工具2绘图进阶
图片.png

参考资料

  • 讨论qq群144081101 591302926 567351477 钉钉免费群21745728

    Bokeh数据可视化工具2绘图进阶
    图片.png
文章链接:https://www.sbkko.com/ganhuo-369.html
文章标题:Bokeh数据可视化工具2绘图进阶
文章版权:SBKKO 所发布的内容,部分为原创文章,转载请注明来源,网络转载文章如有侵权请联系我们!

给TA打赏
共{{data.count}}人
人已打赏
干货分享

Bokeh数据可视化工具1快速入门

2018-8-13 22:08:00

干货分享

Hive窗口函数总结

2018-8-13 22:28:00

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索