1. 程式人生 > >Python:畫圖之不錯的折線圖程式碼

Python:畫圖之不錯的折線圖程式碼

    這是一個師兄交付的程式碼中的一段,他這個方法畫出來的圖是真的很好用,自己現在畫什麼都用這個方法來畫,所以分享給大家。

    import下面一段為簡單的賦值,df_part1是三條線的橫座標,為時間字串;剩下的df_part234分別為一些隨機數。

import numpy as np
import datetime
from plotly.graph_objs import *
import plotly.offline as py_offline
import random

df_part1 = []
df_part2 = []
df_part3 = []
df_part4 = []
for i in np.arange(20180501,20180531,1):
    i = str(i)
    a = datetime.datetime.strptime(i, '%Y%m%d')
    df_part1.append(a)
    df_part2.append(random.uniform(0, 30))
    df_part3.append(random.uniform(10, 20))
    df_part4.append(random.uniform(5, 50))

scatter_1 = Scatter(
        x=df_part1,
        y=df_part2,
        mode='lines',
        name='abc_1'
    )

scatter_2 = Scatter(
        x=df_part1,
        y=df_part3,
        mode='lines',
        name='abc_2'
    )

scatter_3 = Scatter(
        x=df_part1,
        y=df_part4,
        mode='lines',
        name='abc_3'
    )
plot_data = Data([scatter_1,scatter_2,scatter_3])
layout = Layout(
        title='tryingline'
    )
fig = Figure(data=plot_data, layout=layout)
py_offline.plot(fig, filename='try')
layout = Layout(
        title='try',
        showlegend=False
    )

    生成的是一個HTML檔案,檔名為try。

    首先,我覺得X軸的時間寫法挺好看的;

    其次,三條線畫在這一張畫布上,右上角的小圖示,可以選擇顯示哪條線;


    最後,在畫布上框選部分割槽域,可以區域性放大,而且不失真。如果資料量比較大,可以清晰地區域性放大真的非常有用。

放大前:


放大後: