1. 程式人生 > >matplotlib【4】--折線圖

matplotlib【4】--折線圖

經濟走勢圖、銷售波動圖、PV監控圖用折線圖

plt.hist()
但好像一直都會用plt.plot()函式應用

plt.hist(x,y,linestyle,
        linewidth,color,marker,
        markersize,markeredgecolor,
        markerfactcolor,label,alpha)

x:指定折線圖的x軸資料;

y:指定折線圖的y軸資料;

linestyle:指定折線的型別,可以是實線、虛線、點虛線、點點線等,預設文實線;

linewidth:指定折線的寬度

marker:可以為折線圖新增點,該引數是設定點的形狀;

markersize:設定點的大小;

markeredgecolor:設定點的邊框色;

markerfactcolor:設定點的填充色;

label:為折線圖新增標籤,類似於圖例的作用;

#經濟走勢圖、銷售波動圖、PV監控圖用折線圖

#一元折線圖的繪製
#案例:每天進步一點點2015公眾號文章閱讀人數

#匯入模組
import pandas as pd
import matplotlib.pyplot as plt

#設定繪圖風格
plt.style.use('ggplot')
#設定中文編碼和負號正常顯示
plt.rcParams['font.sans-serif']=['Microsoft YaHei']
plt.rcParams['axes.unicode_minus']=False
#忽略警告
import warnings
warnings.filterwarnings('ignore')

#讀取需要繪圖的資料
# file=open('E:\知乎檔案儲存\python_curveplot\wechart.xlsx','rb')
article_reading=pd.read_excel('E:\知乎檔案儲存\python_curveplot\wechart.xlsx')
#取數:取出8月份至9月28號的資料
sub_data=article_reading.loc[article_reading.date>='2017-08-01',:]
#可以用data函式直接讀取資料,日期資料是具有運算的

#設定圖框大小
fig=plt.figure(figsize=(10,6))

#繪圖
plt.plot(
    sub_data.date,#x軸資料
    sub_data.article_reading_cnts,#y軸資料
    linestyle='-',#折線型別
    linewidth=2,#折線寬度
    color='steelblue',#折線顏色
    marker='o',#點的形狀
    markersize=6,#點的大小
    markeredgecolor='black',#點的邊框色
    markerfacecolor='brown'#點的填充色
)

#新增標題和座標軸標籤
plt.title('公眾號每天閱讀人數趨勢圖')
plt.xlabel('日期')
plt.ylabel('人數')

#剔除圖框上邊界和右邊界的刻度
plt.tick_params(top='off',right='off')


#此步是為了進一步優化影象,比如將刻度標籤展現的形式是‘yyyy-mm-dd',又想以固定幾天作為間隔
#只需要在上述程式碼的基礎上新增幾行程式碼

import matplotlib as mpl
#獲取圖的座標資訊
ax=plt.gca()
#設定日期的顯示格式
date_format=mpl.dates.DateFormatter('%Y-%m-%d')
ax.xaxis.set_major_formatter(date_format)

#設定x軸顯示多少個日期刻度
#xlocator=mpl.ticker.LinearleLocator(10)
#設定x軸每個刻度的間隔天數
xlocator=mpl.ticker.MultipleLocator(5)
ax.xaxis.set_major_locator(xlocator)

#為了避免x軸日期刻度標籤的重疊,設定x軸刻度自動展現,並且45度傾斜
fig.autofmt_xdate(rotation=45)

plt.show()

在這裡插入圖片描述

######多元折線圖繪製############
#如果需要在一張圖上中劃出兩條折線圖,也很簡單,只需要在程式碼中寫入兩次plot函式即可,其他都不需要改動。
#匯入模組
import pandas as pd
import matplotlib.pyplot as plt

#設定繪圖風格
plt.style.use('ggplot')
#設定中文編碼和負號正常顯示
plt.rcParams['font.sans-serif']=['Microsoft YaHei']
plt.rcParams['axes.unicode_minus']=False
#忽略警告
import warnings
warnings.filterwarnings('ignore')

#讀取需要繪圖的資料
# file=open('E:\知乎檔案儲存\python_curveplot\wechart.xlsx','rb')
article_reading=pd.read_excel('E:\知乎檔案儲存\python_curveplot\wechart.xlsx')
#取數:取出8月份至9月28號的資料
sub_data=article_reading.loc[article_reading.date>='2017-08-01',:]
#可以用data函式直接讀取資料,日期資料是具有運算的

#設定圖框大小
fig=plt.figure(figsize=(10,6))

#繪圖--閱讀人數趨勢
plt.plot(
    sub_data.date,#x軸資料
    sub_data.article_reading_cnts,#y軸資料
    linestyle='-',#折線型別
    linewidth=2,#折線寬度
    color='steelblue',#折線顏色
    marker='o',#點的形狀
    markersize=6,#點的大小寫
    markeredgecolor='black',#點的邊框色
    markerfacecolor='steelblue',#點的填充色
    label='閱讀人數'#新增標籤

)

#繪圖--閱讀人次趨勢
plt.plot(
    sub_data.date,#x軸標籤
    sub_data.article_reading_times,#y軸資料
    linestyle='-',#折線型別
    linewidth=2,#折線寬度
    color='#ff9999',#折線顏色
    marker='o',#點的形狀
    markersize=6,#點的大小
    markeredgecolor='black',#點的邊框色
    markerfacecolor='#ff9999',#點的填充色
     label='閱讀人次'
)

#新增標題和座標軸標籤
plt.title('公眾號每天閱讀人數和人次趨勢圖')
plt.xlabel('日期')
plt.ylabel('人數')

#剔除圖框上邊界和右邊界的刻度
plt.tick_params(top='off',right='off')

#獲取圖的座標資訊
ax=plt.gca()
#設定日期的顯示格式
date_format=mpl.dates.DateFormatter('%m-%d')
ax.xaxis.set_major_formatter(date_format)

#設定x軸顯示多少個日期刻度
#xlocator=mpl.ticker.LinearLocator(10)
#設定x軸每個刻度的間隔天數
xlocator=mpl.ticker.MultipleLocator(3)
ax.xaxis.set_major_locator(xlocator)

#為了避免x軸日期刻度標籤的重疊,設定x軸刻度自動展現,並且傾斜45度
fig.autofmt_xdate(rotation=45)

plt.legend()
plt.show()

在這裡插入圖片描述