plotly是开挂的作图神器,可以供js, python, R, DB等使用。具体见官网plotly官网
1. 安装
pip install plotly
1
更新
pip install plotly --upgrade
1
2. 在线使用,画的图会存入云账户中
import plotly
plotly.tools.set_credentials_file(username=
'DemoAccount', api_key=
'lr1c37zw81')
1234
3. 离线使用
import plotly
from plotly.graph_objs
import Scatter, Layout
plotly.offline.init_notebook_mode(connected=
True)
1234
4. py.plot和py.iplot区别
py.plot会生成一个离线的html文件,里面放置图片。而py.iplot则直接在ipython notebook里面生成图片。
5. 散点图和折线图
基本散点图:
import plotly.offline
as py
from plotly.graph_objs
import Scatter, Layout
import plotly.graph_objs
as go
py.init_notebook_mode(connected=
True)
trace1=go.Scatter(
x=[
1,
2],
y=[
1,
2]
)
trace2=go.Scatter(
x=[
1,
2],
y=[
2,
1]
)
py.iplot([trace1, trace2])
123456789101112131415
可以改变mode,换成散点图:
trace=go.Scatter(
x=[
1,
2,
3],
y=[
1,
2,
3],
marker=dict(
color=[
'red',
'blue',
'green'],
size=[
30,
80,
200],
),
mode=
'markers'
)
py.iplot([trace])
12345678910
trace=go.Scatter(
x=[
1,
2,
3],
y=[
1,
2,
3],
marker=dict(
color=[
'red',
'blue',
'green'],
size=[
30,
80,
200],
),
mode=
'markers+lines'
)
py.iplot([trace])
12345678910
6. 设置图例和图例位置
trace1=go.Scatter(
name=
"lenged1",
x=[
1,
2],
y=[
2,
1]
)
trace2=go.Scatter(
name=
"lenged2",
x=[
2,
1],
y=[
2,
1]
)
layout=go.Layout(
showlegend=
True,
legend=dict(
x=
0.9,
y=
1.1
)
)
data=[trace1, trace2]
fig=go.Figure(data=data, layout=layout)
py.iplot(fig)
123456789101112131415161718192021
为点加上文字:
trace1=go.Scatter(
x=[
1,
2,
3],
y=[
1,
2,
3],
text=[
'A',
'B',
'C'],
textposition=
"top center",
mode=
"markers+text",
marker=dict(
size=[
20,
20,
20]
)
)
data=[trace1]
py.iplot(data)
123456789101112
更多设置: plotly.Scatter设置
7. 设置坐标轴
trace=go.Scatter(
x=[
1,
2,
3,
4],
y=[
1,
2,
3,
6]
)
axis_template=dict(
showgrid=
True,
zeroline=
True,
nticks=
20,
showline=
True,
title=
'X axis',
mirror=
'all',
zerolinecolor=
"#FF0000"
)
layout=go.Layout(
xaxis=axis_template,
yaxis=axis_template
)
data=[trace]
fig=go.Figure(
data=data,
layout=layout
)
py.iplot(fig)
1234567891011121314151617181920212223
更多关于坐标轴设置的参数详见: plotly坐标轴设置
8.Heatmap
trace=go.Heatmap(
z=[
[
1,
2,
3,
4],
[
5,
6,
7,
8]
]
)
data=[trace]
py.iplot(data)
12345678
8. Barchart
trace=go.Bar(
x=[
1,
2],
y=[
1,
2],
marker=dict(
color=[
"#FF0000",
"#00FF00"],
)
)
data=[trace]
py.iplot(data)
123456789
更多设置:plotly.Bar
9. 填充区域
trace=go.Scatter(
x=[
1,
2,
6],
y=[
1,
2,
0.5],
fill=
"tonexty",
fillcolor=
"#FF0"
)
data=[trace]
py.iplot(data)
12345678
10. 直方图
trace=go.Histogram(
x=[
1,
2,
3,
3,
3,
4,
5],
marker=dict(
color=[
"#F0F",
"FF0",
"0FF"]
)
)
data=[trace]
py.iplot(data)
12345678
11. 画地图
trace=go.Scattergeo(
lon=[
100,
400],
lat=[
0,
0],
marker=dict(
color=[
'red',
'blue'],
size=[
30,
50]
),
mode=
"markers"
)
data=[trace]
py.iplot(data)
1234567891011
12. 3D表面图
trace=go.Surface(
colorscale=
'Viridis',
z=[
[
3,
5,
8,
13],
[
21,
13,
8,
5]
]
)
data=[trace]
py.iplot(data)
123456789
13, 箱型图(Box-plot)
trace=go.Box(
x=[
1,
2,
3,
3,
3,
4,
5]
)
data=[trace]
py.iplot(data)
12345
14. 画地图
trace=go.Choropleth(
locations=[
'AZ',
'CA',
'VT'],
locationmode=
'USA-states',
colorscale=[
'Viridis'],
z=[
10,
20,
40]
)
layout=dict(
geo=dict(scope=
'usa')
)
data=[trace]
map=go.Figure(data=data, layout=layout)
py.iplot(map)
123456789101112
15. 3D点图
trace=go.Scatter3d(
x=[
9,
8,
5,
1],
y=[
1,
2,
4,
8],
z=[
11,
8,
15,
3],
mode=
"lines"
)
data=[trace]
py.iplot(data)
12345678
16. 2维Historgram
trace=go.Histogram2d(
x=[
1,
2,
3,
3,
3,
4,
5],
y=[
1,
2,
3,
3,
3,
4,
5]
)
data=[trace]
py.iplot(data)
123456