python plotly 使用教程,教程python,1、plotly介绍


1、plotly介绍

lotly的Python图形库使互动的出版质量图表成为在线。 如何制作线图,散点图,面积图,条形图,误差线,箱形图,直方图,热图,子图,多轴,极坐标图和气泡图的示例。
推荐最好使用jupyter notebook,使用pycharm的话不是很方便。

2、安装

pip install plotly

2、使用

1)在线使用

在setting里找到用户名和api key


技术图片image.png
##在线使用import plotly.plotly as pyfrom plotly import toolsfrom plotly.graph_objs import *tools.set_credentials_file(username=‘yours‘, api_key=‘yours‘)trace0 = Scatter(    x=[1, 2, 3, 4],    y=[10, 15, 13, 17],    mode=‘markers‘)trace1 = Scatter(    x=[1, 2, 3, 4],    y=[16, 5, 11, 9])data = Data([trace0, trace1])py.iplot(data)

散点图

技术图片散点图.png

2)offline

import plotly.offline as ofimport plotly.graph_objs as goof.offline.init_notebook_mode(connected=True)trace0 = go.Scatter(    x=[1, 2, 3, 4],    y=[10, 15, 13, 17],    mode=‘markers‘)trace1 = go.Scatter(    x=[1, 2, 3, 4],    y=[16, 5, 11, 9])data = go.Data([trace0, trace1])of.plot(data)

3、其他图

下面我们画几个其他类型的图

柱状图

import plotly.figure_factory as ffimport pandas as pddf = pd.read_csv("https://raw.githubusercontent.com/plotly/datasets/master/school_earnings.csv")data = [Bar(x=df.School,            y=df.Gap)]py.iplot(data)
技术图片image.png

3D图

import numpy as nps = np.linspace(0, 2 * np.pi, 240)t = np.linspace(0, np.pi, 240)tGrid, sGrid = np.meshgrid(s, t)r = 2 + np.sin(7 * sGrid + 5 * tGrid)  # r = 2 + sin(7s+5t)x = r * np.cos(sGrid) * np.sin(tGrid)  # x = r*cos(s)*sin(t)y = r * np.sin(sGrid) * np.sin(tGrid)  # y = r*sin(s)*sin(t)z = r * np.cos(tGrid)                  # z = r*cos(t)surface = Surface(x=x, y=y, z=z)data = Data([surface])layout = Layout(    title=‘Parametric Plot‘,    scene=Scene(        xaxis=XAxis(            gridcolor=‘rgb(255, 255, 255)‘,            zerolinecolor=‘rgb(255, 255, 255)‘,            showbackground=True,            backgroundcolor=‘rgb(230, 230,230)‘        ),        yaxis=YAxis(            gridcolor=‘rgb(255, 255, 255)‘,            zerolinecolor=‘rgb(255, 255, 255)‘,            showbackground=True,            backgroundcolor=‘rgb(230, 230,230)‘        ),        zaxis=ZAxis(            gridcolor=‘rgb(255, 255, 255)‘,            zerolinecolor=‘rgb(255, 255, 255)‘,            showbackground=True,            backgroundcolor=‘rgb(230, 230,230)‘        )    ))fig = Figure(data=data, layout=layout)py.iplot(fig,)
技术图片image.png

折线图

import numpy as npN = 100random_x = np.linspace(0, 1, N)random_y0 = np.random.randn(N)+5random_y1 = np.random.randn(N)random_y2 = np.random.randn(N)-5# Create tracestrace0 = 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, trace2]py.iplot(data)
技术图片image.png

堆叠图

trace1 = go.Bar(    x=[‘giraffes‘, ‘orangutans‘, ‘monkeys‘],    y=[20, 14, 23],    name=‘SF Zoo‘)trace2 = go.Bar(    x=[‘giraffes‘, ‘orangutans‘, ‘monkeys‘],    y=[12, 18, 29],    name=‘LA Zoo‘)data = [trace1, trace2]layout = go.Layout(    barmode=‘stack‘)fig = go.Figure(data=data, layout=layout)py.iplot(fig)
技术图片image.png

pie

labels = [‘Oxygen‘,‘Hydrogen‘,‘Carbon_Dioxide‘,‘Nitrogen‘]values = [4500,2500,1053,500]colors = [‘#FEBFB3‘, ‘#E1396C‘, ‘#96D38C‘, ‘#D0F9B1‘]trace = go.Pie(labels=labels, values=values,             hoverinfo=‘label+percent‘, textinfo=‘value‘,              textfont=dict(size=20),             marker=dict(colors=colors,                          line=dict(color=‘#000000‘, width=2)))py.iplot([trace])
技术图片image.png

不知道叫什么图

title = ‘Main Source for News‘labels = [‘Television‘, ‘Newspaper‘, ‘Internet‘, ‘Radio‘]colors = [‘rgba(67,67,67,1)‘, ‘rgba(115,115,115,1)‘, ‘rgba(49,130,189, 1)‘, ‘rgba(189,189,189,1)‘]mode_size = [8, 8, 12, 8]line_size = [2, 2, 4, 2]x_data = [    [2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2013],    [2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2013],    [2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2013],    [2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2013],]y_data = [    [74, 82, 80, 74, 73, 72, 74, 70, 70, 66, 66, 69],    [45, 42, 50, 46, 36, 36, 34, 35, 32, 31, 31, 28],    [13, 14, 20, 24, 20, 24, 24, 40, 35, 41, 43, 50],    [18, 21, 18, 21, 16, 14, 13, 18, 17, 16, 19, 23],]traces = []for i in range(0, 4):    traces.append(go.Scatter(        x=x_data[i],        y=y_data[i],        mode=‘lines‘,        line=dict(color=colors[i], width=line_size[i]),        connectgaps=True,    ))    traces.append(go.Scatter(        x=[x_data[i][0], x_data[i][11]],        y=[y_data[i][0], y_data[i][11]],        mode=‘markers‘,        marker=dict(color=colors[i], size=mode_size[i])    ))layout = go.Layout(    xaxis=dict(        showline=True,        showgrid=False,        showticklabels=True,        linecolor=‘rgb(204, 204, 204)‘,        linewidth=2,        autotick=False,        ticks=‘outside‘,        tickcolor=‘rgb(204, 204, 204)‘,        tickwidth=2,        ticklen=5,        tickfont=dict(            family=‘Arial‘,            size=12,            color=‘rgb(82, 82, 82)‘,        ),    ),    yaxis=dict(        showgrid=False,        zeroline=False,        showline=False,        showticklabels=False,    ),    autosize=False,    margin=dict(        autoexpand=False,        l=100,        r=20,        t=110,    ),    showlegend=False,)annotations = []# Adding labelsfor y_trace, label, color in zip(y_data, labels, colors):    # labeling the left_side of the plot    annotations.append(dict(xref=‘paper‘, x=0.05, y=y_trace[0],                                  xanchor=‘right‘, yanchor=‘middle‘,                                  text=label + ‘ {}%‘.format(y_trace[0]),                                  font=dict(family=‘Arial‘,                                            size=16,                                            color=colors,),                                  showarrow=False))    # labeling the right_side of the plot    annotations.append(dict(xref=‘paper‘, x=0.95, y=y_trace[11],                                  xanchor=‘left‘, yanchor=‘middle‘,                                  text=‘{}%‘.format(y_trace[11]),                                  font=dict(family=‘Arial‘,                                            size=16,                                            color=colors,),                                  showarrow=False))# Titleannotations.append(dict(xref=‘paper‘, yref=‘paper‘, x=0.0, y=1.05,                              xanchor=‘left‘, yanchor=‘bottom‘,                              text=‘Main Source for News‘,                              font=dict(family=‘Arial‘,                                        size=30,                                        color=‘rgb(37,37,37)‘),                              showarrow=False))# Sourceannotations.append(dict(xref=‘paper‘, yref=‘paper‘, x=0.5, y=-0.1,                              xanchor=‘center‘, yanchor=‘top‘,                              text=‘Source: PewResearch Center & ‘ +                                   ‘Storytelling with data‘,                              font=dict(family=‘Arial‘,                                        size=12,                                        color=‘rgb(150,150,150)‘),                              showarrow=False))layout[‘annotations‘] = annotationsfig = go.Figure(data=traces, layout=layout)py.iplot(fig)
技术图片image.png

4、各种具体语法

pdf

技术图片image.png

5、总结

画的图真是好看,而且划过的图会自动上传到云端。

技术图片image.png

作者:五长生
链接:https://www.jianshu.com/p/57bad75139ca
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

python plotly 使用教程

评论关闭