plotly和经典Matplotlib最大的不同是plotly可以生成交互式的数据图表。Matplotlib生成的图示静态(死)的图,而plotly是活的图,具体方式是plotly可以生成一个html网页,该网页基于js支持数据交互(点击、缩放、拖拽)等等交互操作。
事先得用Python命令安装:
pip install plotly
Python例子:
import plotly as py
import plotly.graph_objs as go
import numpy as np
if __name__ == '__main__':
count = 20
x = np.linspace(0, 5, count) # 随机生成count个0到5之间的数
y0 = np.random.randn(count) + 8
print(y0)
y1 = np.random.randn(count)
print(y1)
y2 = np.random.randn(count) - 8
print(y2)
trace0 = go.Scatter(
x=x,
y=y0,
mode='markers', # 散点,没有线
name='散点' # 曲线名称
)
trace1 = go.Scatter(
x=x,
y=y1,
mode='lines+markers', # 散点+线
name='散点和线',
marker=dict(
size=15, # 点的大小
color='rgba(255, 180, 190, .6)', # 颜色。最后一位是透明度
line=dict(
width=2, # 线的宽度
color='rgb(0, 255, 0)' # 线的颜色
))
)
trace2 = go.Scatter(
x=x,
y=y2,
mode='lines', # 线
name='线',
line=dict(
width=4, # 线宽
color='red'
)
)
data = [trace0, trace1, trace2]
py.offline.plot(data, filename='fig.html')
生成的fig.html图中,交互数据点:
原始随机数据:
[ 7.149432 6.50489461 7.16456305 7.45697682 7.36924142 8.87313759
7.57906709 9.32564909 9.83994729 7.86031166 7.50424235 8.00859527
8.03884244 8.24660839 7.74482351 7.10029204 7.38240537 8.37656517
10.25392977 7.69139566]
[-0.20807945 -1.87541628 -2.1628432 2.02659036 -0.64169184 -0.89742978
-1.11686915 -0.78583164 -1.60748698 -1.5941247 0.87648078 -0.57077708
0.09552706 -0.41319839 -0.11193602 -0.51171773 0.20090277 -0.81025678
0.09127885 0.64375603]
[ -7.49336588 -7.98602767 -9.99411645 -11.25695211 -8.35283071
-8.17732449 -7.9029906 -7.01508945 -8.05447955 -9.73398467
-9.17156658 -7.43255481 -7.68744518 -8.54303014 -7.5810631
-8.98659986 -8.19372767 -9.24647112 -7.31539077 -9.57868002]