今天在研究Plotly绘制散点图的方法
使用Python3.6 + Plotly
Plotly版本2.0.0
因为Plotly没有自己独立的线性图形函数,所以把线性图形与散点图形全部用一个函数实现
这个函数是Scatter函数
下面举几个简单的例子
先画一个纯散点图,代码如下:
importplotlyimportplotly.graph_objs as goimportnumpy
pyplt= plotly.offline.plot #使用离线模式
N = 100random_x= numpy.linspace(0, 1, N)
random_y0= numpy.random.randn(N)+5random_y1=numpy.random.randn(N)
random_y2= numpy.random.randn(N)-5
#上面是一些随机数据
trace0 =go.Scatter(
x=random_x,
y=random_y0,
mode= 'markers', #绘制纯散点图
name = 'markers' #图例名称
)
data=[trace0]
pyplt(data, filename='tmp/scatter_diagram.html')#html放置的位置
运行程序会得到如下图所示图形
接下来我们画一个线性图,数据还是之前的数据。看看是什么样子,代码如下
importplotlyimportplotly.graph_objs as goimportnumpy
pyplt= plotly.offline.plot #使用离线模式
N = 100random_x= numpy.linspace(0, 1, N)
random_y0= numpy.random.randn(N)+5random_y1=numpy.random.randn(N)
random_y2= numpy.random.randn(N)-5trace1=go.Scatter(
x=random_x,
y=random_y2,
mode= 'lines', #线性图
name = 'lines')
data=[trace1]
pyplt(data, filename='tmp/line.html')
我们会得到如下图所示的线形图
下面我们把线性图,和散点图合到一起
importplotlyimportplotly.graph_objs as goimportnumpy
pyplt= plotly.offline.plot #使用离线模式
N = 100random_x= numpy.linspace(0, 1, N)
random_y0= numpy.random.randn(N)+5random_y1=numpy.random.randn(N)
random_y2= numpy.random.randn(N)-5trace1=go.Scatter(
x=random_x,
y=random_y1,
mode= 'lines+markers', #散点+线的绘图
name = 'lines+markers')
data=[trace1]
pyplt(data, filename='tmp/add.html')
得到如下图所示图例
三个图在一张图中表示的例子
importplotlyimportplotly.graph_objs as goimportnumpy
pyplt= plotly.offline.plot #使用离线模式
N = 100random_x= numpy.linspace(0, 1, N)
random_y0= numpy.random.randn(N)+5random_y1=numpy.random.randn(N)
random_y2= numpy.random.randn(N)-5trace0=go.Scatter(
x=random_x,
y=random_y0,
mode= 'markers', #纯散点的绘图
name = 'markers' #曲线名称
)
trace1=go.Scatter(
x=random_x,
y=random_y1,
mode= 'lines+markers', #散点+线的绘图
name = 'lines+markers')
trace2=go.Scatter(
x=random_x,
y=random_y2,
mode= 'lines', #线的绘图
name = 'lines')
data=[trace0,trace1,tarace2]
pyplt(data, filename='tmp/all.html')
得到如下图
可以看到,三个图,绘制在一张图上了!
也可以对样式进行设置下面看个例子,改变一下颜色,代码如下:
importplotlyimportplotly.graph_objs as goimportnumpy
pyplt= plotly.offline.plot #使用离线模式
N = 100random_x= numpy.linspace(0, 1, N)
random_y0= numpy.random.randn(N)+5random_y1=numpy.random.randn(N)
random_y2= numpy.random.randn(N)-5trace0=go.Scatter(
x=random_x,
y=random_y0,
mode= 'markers', #纯散点图
name = 'markers', #曲线名称
marker =dict(
size= 10, #设置点的宽度
color = 'rgba(255, 182, 193, .9)', #设置曲线的颜色
line =dict(
width= 2, #设置线条的宽度
color = 'rgb(0, 255, 0)' #设置线条的颜色
)
)
)
data=[trace0]
pyplt(data, filename='tmp/style.html')
marker的参数设置很重要,设置颜色color,大小size
line设置线条宽度width,color 设置线条颜色等