天天看點

python資料可視化之日期折線圖畫法

  • 引入

    什麼是折線圖:

      折線圖是排列在工作表的列或行中的資料可以繪制到折線圖中。折線圖可以顯示随時間(根據常用比例設定)而變化的連續資料,是以非常适用于顯示在相等時間間隔下資料的趨勢。

      在折線圖中,類别資料沿水準軸均勻分布,所有值資料沿垂直軸均勻分布。

       以上引用自 百度百科 ,簡單來說一般折線圖 是以時間作為 X 軸 資料 作為 Y軸,這當然不是固定的,是可以自行設定的。

話不多說~ 進入正題

  • 第一種畫法:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.dates as mdate
from matplotlib.pyplot import rcParams 
%matplotlib inline

# 防止中文亂碼
rcParams['font.sans-serif'] = 'kaiti'

# 生成一個時間序列 
time =pd.to_datetime(np.arange(0,11), unit='D',
                   origin=pd.Timestamp('2019-01-01'))

# 生成資料
data = np.random.randint(10,50,size=11)
# 建立一個畫布
fig = plt.figure(figsize=(12,9))
# 在畫布上添加一個子視圖
ax = plt.subplot(111)
# 這裡很重要  需要 将 x軸的刻度 進行格式化
ax.xaxis.set_major_formatter(mdate.DateFormatter('%Y-%m-%d'))
# 為X軸添加刻度
plt.xticks(pd.date_range(time[0],time[-1],freq='D'),rotation=45)
# 畫折線
ax.plot(time,data,color='r')
# 設定标題
ax.set_title('折線圖示例')
# 設定 x y 軸名稱
ax.set_xlabel('日期',fontsize=20)
ax.set_ylabel('銷售量',fontsize=20)
           
python資料可視化之日期折線圖畫法
  • 注解
  1. x 軸接收的日期類型 必須是下圖:
python資料可視化之日期折線圖畫法
  1. 關于 pd.to_time() 中的參數 其中 uint = ‘D’ 表示 0~10 中全天 origin=pd.Timestamp(‘2019-01-01’) 表示起源 也就是 從 1月1号開始算起
  2. ax.xaxis.set_major_formatter(mdate.DateFormatter(’%Y-%m-%d’)) 如果想要顯示 x軸為日期類型 必須使用 格式化 格式化可以自行設定
  3. pd.date_range(time[0],time[-1],freq=‘D’) 不要忘記還需要自己手動添加刻度
  • 第二種畫法:
import pyecharts.options as opts
from example.commons import  Faker
from pyecharts.charts import Line
import pandas as pd

# 處理一下時間  
start = '2019-01-01'
end = '2019-01-10'
t = pd.date_range(start=start,end=end).tolist()
time_ = []
for i in t:
    i  = str(i)[:-8]
    time_.append(i)

def line_base() -> Line:
    c = (
        Line()
        .add_xaxis(time_)
        .add_yaxis("商家A", np.random.randint(100,400,size=10).tolist())
        .add_yaxis("商家B", np.random.randint(100,400,size=10).tolist())
        .set_global_opts(title_opts=opts.TitleOpts(title="Line-基本示例"),
        yaxis_opts=opts.AxisOpts(name='商家銷售情況'),
        xaxis_opts=opts.AxisOpts(name='銷售日期')
                        
        )
    )
    return c

# 在 jupyter notebook 上渲染
line_base().render_notebook()
           

ps: 如果覺得鍊式調用不習慣的話 可以 去 翻看我之前發表的 資料可視化部落格 裡面有具體的例子~

python資料可視化之日期折線圖畫法

好啦~先寫到這裡了

感覺 有些不足 改天回來 再改改 ?

繼續閱讀