> 백엔드 개발 > 파이썬 튜토리얼 > Python이 플롯을 사용하여 데이터 차트(그림 및 텍스트)를 그리는 방법에 대한 사례를 공유하세요.

Python이 플롯을 사용하여 데이터 차트(그림 및 텍스트)를 그리는 방법에 대한 사례를 공유하세요.

黄舟
풀어 주다: 2017-07-18 11:18:51
원래의
5438명이 탐색했습니다.

이 글은 주로 Python에서 데이터 차트를 그리기 위해 Plotly를 사용하는 방법을 소개합니다. 이는 예제를 통해 Plotly를 그리는 기술을 분석합니다. 관심 있는 친구들은 참고할 수 있습니다.

소개: Python-plotly 모듈을 사용하세요. 스트레스 테스트 데이터를 플롯하고 정적 HTML 페이지를 생성하여 결과를 표시합니다.

많은 친구들이 개발 과정에서 스트레스 테스트 모듈을 사용해본 경험이 있습니다. 스트레스 테스트 후에는 누구나 Excel을 사용하여 스트레스 테스트 데이터를 처리하고 데이터 시각화 뷰를 그리는 것을 좋아하지만 웹을 사용하는 것은 편리하지 않습니다. 데이터를 처리하는 페이지입니다. 이 기사에서는 python-plotly 모듈을 사용하여 스트레스 테스트 데이터를 그리고 정적 HTML 페이지를 생성하여 결과 표시를 용이하게 하는 방법을 소개합니다.

Plotly 소개

Plotly는 JavaScript를 사용하여 개발된 차트 도구로, 주류 데이터 분석 언어(예: Python, R, MATLAB)와 상호 작용할 수 있는 API를 제공합니다. 자세한 내용은 공식 홈페이지(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)
로그인 후 복사

산점도

플로팅 효과:

코드:


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)
로그인 후 복사

막대형 차트

그리기 효과:

코드:


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)
로그인 후 복사

Summary

이 글에서는 python-plotly를 사용하여 데이터 그래프를 그리는 방법을 소개합니다. 예제의 선 그래프 다섯 가지 일반적인 차트(선 플롯), 산점도, 막대 차트, 원형 차트 및 채워진 영역 플롯은 기본적으로 대부분의 차트 유형을 다루며 친구들은 이를 변형하여 더 아름다운 아이콘을 그릴 수 있습니다.

위 내용은 Python이 플롯을 사용하여 데이터 차트(그림 및 텍스트)를 그리는 방법에 대한 사례를 공유하세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿