首頁  >  文章  >  後端開發  >  分享Python如何利用plotly繪製資料圖表的案例(圖文)

分享Python如何利用plotly繪製資料圖表的案例(圖文)

黄舟
黄舟原創
2017-07-18 11:18:515407瀏覽

本篇文章主要介紹了Python使用plotly繪製資料圖表的方法,實例分析了plotly繪製的技巧,具有一定的參考價值,有興趣的小夥伴們可以參考一下

##導語:使用python-plotly 模組來進行壓測資料的繪製,並且產生靜態html 頁面結果展示。

不少小夥伴在開發過程中都有對模組進行壓測的經歷,壓測結束後大家往往喜歡使用Excel處理壓測資料並繪製資料視覺化視圖,但這樣不能很方便的使用web頁面進行資料展示。本文將介紹使用python-plotly模組來進行壓測資料的繪製,並且產生靜態html頁面方便結果展示。

Plotly簡介

Plotly是一款使用JavaScript開發的製圖工具,提供了與主流資料分析語言互動的API(如: Python, R, MATLAB)。大家可以到官網 https://plot.ly/ 了解更多詳細的資訊。 Plotly能夠繪製具有使用者互動功能的精美圖表。

Python-Plotly 安裝

本文檔主要是介紹使用plotly的Python API來進行幾種簡單圖表的繪製,更多Plotly的用法請參考https://plot.ly/python/

Python-Plotly可以使用pip安裝,並且最好在Python2.7版本及以上安裝使用,如果使用Python2.6版本,請自行安裝Python2.7和對應的pip。

Plotly繪圖實例

# line-plots

繪圖效果:

產生的html頁面在右上角提供了豐富的互動工具。

程式碼:


def line_plots(name):
  '''
  绘制普通线图
  '''
  #数据,x为横坐标,y,z为纵坐标的两项指标,三个array长度相同
  dataset = {'x':[0,1,2,3,4,5,6,7,8,9],
        'y':[5,4,1,3,11,2,6,7,19,20],
        'z':[12,9,0,0,3,25,8,17,22,5]}
  data_g = []
  #分别插入 y, z
  tr_x = Scatter(
    x = dataset['x'],
    y = dataset['y'],
    name = 'y' 
  )
  data_g.append(tr_x)
  tr_z = Scatter(
    x = dataset['x'],
    y = dataset['z'],
    name = 'z' 
  )
  data_g.append(tr_z)
  #设置layout,指定图表title,x轴和y轴名称
  layout = Layout(title="line plots", xaxis={'title':'x'}, yaxis={'title':'value'})
  #将layout设置到图表
  fig = Figure(data=data_g, layout=layout)
  #绘图,输出路径为name参数指定
  pltoff.plot(fig, filename=name)

scatter-plots

繪圖效果:

程式碼:


#

def scatter_plots(name):
  '''
  绘制散点图
  '''
  dataset = {'x':[0,1,2,3,4,5,6,7,8,9],
        'y':[5,4,1,3,11,2,6,7,19,20],
        'text':['5_txt','4_txt','1_txt','3_txt','11_txt','2_txt','6_txt','7_txt','19_txt','20_txt']}

  data_g = []

  tr_x = Scatter(
    x = dataset['x'],
    y = dataset['y'],
    text = dataset['text'],
    textposition='top center',
    mode='markers+text',
    name = 'y' 
  )
  data_g.append(tr_x)

  layout = Layout(title="scatter plots", xaxis={'title':'x'}, yaxis={'title':'value'})
  fig = Figure(data=data_g, layout=layout)
  pltoff.plot(fig, filename=name)

bar-charts

繪圖效果:

程式碼:


#

def bar_charts(name):
  '''
  绘制柱状图
  '''
  dataset = {'x':['Windows', 'Linux', 'Unix', 'MacOS'],
        'y1':[45, 26, 37, 13],
        'y2':[19, 27, 33, 21]}
  data_g = []
  tr_y1 = Bar(
    x = dataset['x'],
    y = dataset['y1'],
    name = 'v1'
  )
  data_g.append(tr_y1)

  tr_y2 = Bar(
    x = dataset['x'],
    y = dataset['y2'],
    name = 'v2'
  )
  data_g.append(tr_y2)
  layout = Layout(title="bar charts", xaxis={'title':'x'}, yaxis={'title':'value'})
  fig = Figure(data=data_g, layout=layout)
  pltoff.plot(fig, filename=name)

pie-charts


繪圖效果:

程式碼:

####
def pie_charts(name):
  '''
  绘制饼图
  '''
  dataset = {'labels':['Windows', 'Linux', 'Unix', 'MacOS', 'Android', 'iOS'],
        'values':[280, 25, 10, 100, 250, 270]} 
  data_g = []
  tr_p = Pie(
    labels = dataset['labels'],
    values = dataset['values']
  )
  data_g.append(tr_p)
  layout = Layout(title="pie charts")
  fig = Figure(data=data_g, layout=layout)
  pltoff.plot(fig, filename=name)
######filled-area-plots########################################################## ###本範例是繪製具有填滿效果的堆疊線圖,適合分析具有堆疊百分比屬性的資料######繪圖效果:###############程式碼:# ###########
def filled_area_plots(name):
  '''
  绘制堆叠填充的线图
  '''
  dataset = {'x':[0,1,2,3,4,5,6,7,8,9],
        'y1':[5,4,1,3,11,2,6,7,19,20],
        'y2':[12,9,0,0,3,25,8,17,22,5],
        'y3':[13,22,46,1,15,4,18,11,17,20]}

  #计算y1,y2,y3的堆叠占比
  dataset['y1_stack'] = dataset['y1']
  dataset['y2_stack'] = [y1+y2 for y1, y2 in zip(dataset['y1'], dataset['y2'])]
  dataset['y3_stack'] = [y1+y2+y3 for y1, y2, y3 in zip(dataset['y1'], dataset['y2'], dataset['y3'])]

  dataset['y1_text'] = ['%s(%s%%)'%(y1, y1*100/y3_s) for y1, y3_s in zip(dataset['y1'], dataset['y3_stack'])]
  dataset['y2_text'] = ['%s(%s%%)'%(y2, y2*100/y3_s) for y2, y3_s in zip(dataset['y2'], dataset['y3_stack'])]
  dataset['y3_text'] = ['%s(%s%%)'%(y3, y3*100/y3_s) for y3, y3_s in zip(dataset['y3'], dataset['y3_stack'])]

  data_g = []
  tr_1 = Scatter(
    x = dataset['x'],
    y = dataset['y1_stack'],
    text = dataset['y1_text'],
    hoverinfo = 'x+text',
    mode = 'lines',
    name = 'y1', 
    fill = 'tozeroy' #填充方式: 到x轴
  )
  data_g.append(tr_1)

  tr_2 = Scatter(
    x = dataset['x'],
    y = dataset['y2_stack'],
    text = dataset['y2_text'],
    hoverinfo = 'x+text',
    mode = 'lines',
    name = 'y2', 
    fill = 'tonexty' #填充方式:到下方的另一条线
  )
  data_g.append(tr_2)

  tr_3 = Scatter(
    x = dataset['x'],
    y = dataset['y3_stack'],
    text = dataset['y3_text'],
    hoverinfo = 'x+text',
    mode = 'lines',
    name = 'y3',
    fill = 'tonexty'
  )
  data_g.append(tr_3)

  layout = Layout(title="field area plots", xaxis={'title':'x'}, yaxis={'title':'value'})
  fig = Figure(data=data_g, layout=layout)
  pltoff.plot(fig, filename=name)
######小結##########本文介紹了利用python-plotly繪製資料圖的方法,實例中線圖(line plots)、散點圖(scatter plots)、長條圖(bar charts)、餅圖(pie charts)以及填充堆疊線圖(filled area plots)這五種典型的圖表基本上涵蓋了大部分類型的測試數據,各位小夥伴可以加以變形繪製出更多的漂亮圖示。 ###

以上是分享Python如何利用plotly繪製資料圖表的案例(圖文)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn