欢迎来到Felix的博客

Do the right things! And talk is cheap,show me your code!

plotly绘图

import plotly.plotly as plt
import plotly.offline as pltoff
from plotly.graph_objs import *

# 生成折线图
def line_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],
               'z': [12, 9, 0, 0, 3, 25, 8, 17, 22, 5]}

    data_g = []

    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 = Layout(title="line plots", xaxis={'title': 'x'}, yaxis={'title': 'value'})
    fig = Figure(data=data_g, layout=layout)
    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)


# 生成饼图
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)


# 充满区域的图
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]}

    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'
    )
    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="filled area plots", xaxis={'title': 'x'}, yaxis={'title': 'value'})
    fig = Figure(data=data_g, layout=layout)
    pltoff.plot(fig, filename=name)


if __name__ == '__main__':
    name = 'test4.html'
    # line_plots(name)
    scatter_plots(name)
    # bar_charts(name)
    # pie_charts(name)
    # filled_area_plots(name)

 

posted @ 2018-04-21 20:48  寂静的天空  阅读(1174)  评论(0编辑  收藏  举报
个人感悟: 一个人最好的镜子就是自己,你眼中的你和别人眼中的你,不是一回事。有人夸你,别信;有人骂你,别听。一根稻草,扔街上就是垃圾;捆上白菜就是白菜价;捆上大闸蟹就是大闸蟹的价。 一个人,不狂是没有出息的,但一直狂,肯定是没有出息的。雨打残花风卷流云,剑影刀光闪过后,你满脸冷酷的站在珠峰顶端,傲视苍生无比英武,此时我问你:你怎么下去? 改变自己就是改变自己的心态,该沉的时候沉下去,该浮的时候浮上来;不争名夺利,不投机取巧,不尔虞我诈;少说、多听、多行动。人每所谓穷通寿夭为命所系,岂不知造物之报施,全视人之自取。 座佑铭:每一个不曾起舞的日子,都是对生命的辜负。