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

image.png
- ##在线使用
- import plotly.plotly as py
- from plotly import tools
- from plotly.graph_objs import *
- tools.set_credentials_file(username='yours', api_ke='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
- import plotly.offline as of
- import plotly.graph_objs as go
-
- of.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)
柱状图
- import plotly.figure_factory as ff
- import pandas as pd
-
- df = 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
-
- import numpy as np
-
- s = 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 np
-
- 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'
- )
-
- 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
- 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 labels
- for 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))
- # Title
- annotations.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))
- # Source
- annotations.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'] = annotations
-
- fig = go.Figure(data=traces, layout=layout)
- py.iplot(fig)


image.png

image.png

image.png
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。