python:plotly库包(可视化)

499 阅读2分钟

1/简介

数据分析离不开数据可视化。
我们最常用的开源组件(技术库)有pandas,matplotlib,pyecharts,tableau。
plotly是最新的用来做数据可视化的开源组件。

plotly是一款用来做数据分析和数据可视化的在线平台,功能很强大,可以绘制出很多图形。
比如条形图,散点图,饼图,柱状图等。
还支持在线编辑,可以支持多种语言,比如python,javascript,matlab,R语言等。

推荐使用jupyter notebook,不推荐使用pycharm,因为在pycharm中操作不方便。

image.png

2/如何安装plotly

pip install plotly

3/绘制图

<1>折线图

from plotly.graph_objs import Scatter,Layout
import plotly
import plotly.offline as py
import numpy as np
import plotly.graph_objs as go

#setting offilne
plotly.offline.init_notebook_mode(connected=True)

# 上面几行代码主要是引用一些库,
# plotly有在线和离线两种模式,在线模式需要有账号可以云编辑。
# 我选用的离线模式,plotly设置为offline模式就可以直接在notebook里面显示了。

N = 100
random_x = np.linspace(0,1,N)
random_y0 = np.random.randn(N)+5
random_y1 = np.random.randn(N)
random_y2 = np.random.randn(N)-5

#Create traces
trace0 = 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'
)

# 随机设置4个参数,一个x轴的数字和三个y轴的随机数据,制作出三种不同类型的图。
# trace0是markers,trace1是lines和markers,trace3是lines。
# 然后把三种图放在data这个列表里面,调用py.iplot(data)即可。

data = [trace0,trace1,trace2]
py.iplot(data)

image.png

<2>散点图

from plotly.graph_objs import Scatter,Layout
import plotly
import plotly.offline as py
import numpy as np
import plotly.graph_objs as go

#setting offilne
plotly.offline.init_notebook_mode(connected=True)

trace1 = go.Scatter(
     y = np.random.randn(500),
     mode = 'markers',
     marker = dict(size = 16,
                   color = np.random.randn(500),
                   colorscale = 'Viridis',
                   showscale = True
    )
)
# 把trace对象放在data中,然后通过.iplot()函数绘制图形
data = [trace1]
py.iplot(data)

image.png

<3>直方图

from plotly.graph_objs import Scatter,Layout
import plotly
import plotly.offline as py
import numpy as np
import plotly.graph_objs as go

#setting offilne
plotly.offline.init_notebook_mode(connected=True)

trace0 = go.Bar(
    x = ['Jan','Feb','Mar','Apr', 'May','Jun',
         'Jul','Aug','Sep','Oct','Nov','Dec'],
    y = [20,14,25,16,18,22,19,15,12,16,14,17],
    name = 'Primary Product',
    marker=dict(
        color = 'rgb(49,130,189)'
    )
)

trace1 = go.Bar(
    x = ['Jan','Feb','Mar','Apr', 'May','Jun',
         'Jul','Aug','Sep','Oct','Nov','Dec'],
    y = [19,14,22,14,16,19,15,14,10,12,12,16],
    name = 'Secondary Product',
    marker=dict(
        color = 'rgb(204,204,204)'
    )
)
data = [trace0,trace1]
py.iplot(data)

image.png