1.前言

在之前的一篇文章《Python数据可视化利器》中,我写了Bokeh、pyecharts的用法,但是有一个挺强大的库Plotly没写,主要是我看到它的教程都是在JupyterNotebooks中使用,说来也奇怪,硬是找不到如何本地使用(就是本地输出HTML文件),所以不敢写出来。现在已经找到方法了,这里我就在原文的基础上增加了Plotly的部分教程。

数据可视化的第三方库挺多的,这里我主要推荐两个,分别是Bokeh、pyecharts。

2.推荐

数据可视化的库有挺多的,这里推荐几个比较常用的:

Matplotlib

Plotly

Seaborn

Ggplot

Bokeh

Pyechart

Pygal

3.Plotly

Plotly文档地址:


使用方式:

Plotly有online和offline两种方式,这里只介绍offline的。


这是Plotly官方教程的一部分

=[dict(visible=False,line=dict(color='配置线宽和颜色name='='+str(step),x=(0,10,0.01),y轴参数data[10]['visible']=(data,filename='SingleSineWave')

只要将最后一行中的

替换为下面代码

便可以运行。

漏斗图

这个图代码太长了,就不po出来了。


BasicBoxPlot


_objsasgoimportnumpyasnpy0=(50)-1y1=(50)+1trace0=(y=y0)trace1=(y=y1)data=[trace0,trace1](data)

WindRoseChart


_objsasgotrace1=(r=[77.5,72.5,70.0,45.0,22.5,42.5,40.0,62.5],text=['North','N-E','East','S-E','South','S-W','West','N-W'],name='11-14m/s',marker=dict(color='rgb(106,81,163)'))trace2=(r=[57.49999999999999,50.0,45.0,35.0,20.0,22.5,37.5,55.00000000000001],text=['North','N-E','East','S-E','South','S-W','West','N-W'],配置输出文件名fruits=['Apples','魅族','OPPO','VIVO','小米','华为']数据source=ColumnDataSource(data=dict(fruits=fruits,counts=counts,color=Spectral6))p=figure(x_range=fruits,y_range=(0,9),plot_height=250,title="FruitCounts",toolbar_location=None,tools="")配置网格线颜色="horizontal"展示图表

年度条形图

可以对比不同时间点的量。


,output_,_file("")参数years=['2015','2016','2017']=False配置中间标签名称与颜色("盘尼西林","c64737"),("新霉素","black"),])gram_color={"positive":"e69584",}整体配置p=figure(plot_width=width,plot_height=height,title="",x_axis_type=None,y_axis_type=None,x_range=(-420,420),y_range=(-420,420),min_border=0,outline_line_color="black",background_fill_color="annularwedgesangles=/2-big_angle/2-_series()*big_angle配置颜色_wedge(0,0,inner_radius,outer_radius,-big_angle+angles,angles,color=colors,)绘制大圆和标签labels=(10.0,(-3,4))radii=a*((labels*1E4))+(0,0,radius=radii,fill_color=None,line_color="white")(0,radii[:-1],[str(r)forrinlabels[:-1]],text_font_size="8pt",text_align="center",text_baseline="middle")细菌标签xr=radii[0]*((-big_angle/2+angles))yr=radii[0]*((-big_angle/2+angles))label_angle=(-big_angle/2+angles)label_angle[label_/2]+=绘制各个细菌的名字(xr,yr,,angle=label_angle,text_font_size="9pt",text_align="center",text_baseline="middle")绘制文字([-30,-30],[-370,-390],text=["Gram-"+grforgringram_()],text_font_size="7pt",text_align="left",text_baseline="middle")配置中间标签文字、文字大小、文字对齐方式([-15,-15,-15],[18,0,-18],text=list(drug_color),text_font_size="9pt",text_align="left",text_baseline="middle")output_file("",title="")show(p)

元素周期表

元素周期表,这个实现好牛逼啊,距离初三刚开始学化学已经很遥远了,想当年我还是化学课代表呢!由于基本用不到化学了,这里就不实现了。



真实状态

5.Pyecharts

pyecharts也是一个比较常用的数据可视化库,用得也是比较多的了,是百度Echarts库的Python支持。这里也展示一下常用的图表。

文档地址为:

条形图


frompyechartsimportBarbar=Bar("我的第一个图表","这里是副标题")("服装",["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"],[5,20,36,10,75,90])该行只为了打印配置项,方便调试时使用()词条value=[10000]键值对数据结构{value:1212,子节点children:[{子节点名name:'descriptionofthisnode',children:[],},{value:4545,name:'descriptionofthisnode',children:[{value:5656,name:'descriptionofthisnode',children:[]},]}]},]treemap=TreeMap(title,width=1200,height=600)000",)()

3D散点图

frompyechartsimportScatter3Dimportrandomdata=[[(0,100),(0,100),(0,100)]for_inrange(80)]range_color=['4575b4','abd9e9','ffffbf','fdae61','d73027','配置宽高("",data,is_visualmap=True,visual_range_color=range_color)渲染
6.后记

大概介绍就是这样了,三个库的功能都挺强大的,Bokeh的中文资料会少一点,如果阅读英文有点难度,还是建议使用pyecharts就好。总体也不是很难,按照文档来修改数据都能够直接上手使用。主要是多练习。