这是一个师兄交付的代码中的一段,他这个方法画出来的图是真的很好用,自己现在画什么都用这个方法来画,所以分享给大家。
import下面一段为简单的赋值,df_part1是三条线的横坐标,为时间字符串;剩下的df_part234分别为一些随机数。
import numpy as np import datetime from plotly.graph_objs import * import plotly.offline as py_offline import random df_part1 = [] df_part2 = [] df_part3 = [] df_part4 = [] for i in np.arange(20180501,20180531,1): i = str(i) a = datetime.datetime.strptime(i, '%Y%m%d') df_part1.append(a) df_part2.append(random.uniform(0, 30)) df_part3.append(random.uniform(10, 20)) df_part4.append(random.uniform(5, 50)) scatter_1 = Scatter( x=df_part1, y=df_part2, mode='lines', name='abc_1' ) scatter_2 = Scatter( x=df_part1, y=df_part3, mode='lines', name='abc_2' ) scatter_3 = Scatter( x=df_part1, y=df_part4, mode='lines', name='abc_3' ) plot_data = Data([scatter_1,scatter_2,scatter_3]) layout = Layout( title='tryingline' ) fig = Figure(data=plot_data, layout=layout) py_offline.plot(fig, filename='try') layout = Layout( title='try', showlegend=False )
生成的是一个HTML文件,文件名为try。
首先,我觉得X轴的时间写法挺好看的;
其次,三条线画在这一张画布上,右上角的小图标,可以选择显示哪条线;
最后,在画布上框选部分区域,可以局部放大,而且不失真。如果数据量比较大,可以清晰地局部放大真的非常有用。
放大前:
放大后: