Python--matplotlib 繪圖可視化練手--折線圖/條形圖
阿新 • • 發佈:2017-10-28
inline otl axis size enc lib note 折線 notebook
最近學習matplotlib繪圖可視化,感覺知識點比較多,邊學習邊記錄。
對於數據可視化,個人建議Jupyter Notebook。
1.首先導包,設置環境
import pandas as pd import numpy as np import sys reload(sys) sys.setdefaultencoding(‘utf-8‘) import matplotlib.pyplot as plt %matplotlib inline #使圖片內嵌交互環境顯示 plt.rcParams[‘font.sans-serif‘]=[‘SimHei‘] #用來正常顯示中文標簽 plt.rcParams[‘axes.unicode_minus‘]=False #用來正常顯示負號
2.讀取數據並顯示
data_every_month = pd.read_csv(‘data_every_month.txt‘)
data_every_month
3.畫折線圖
y = data_every_month[‘nums‘].T.values x = range(0,len(y)) plt.figure(figsize=(10, 6)) plt.plot(x,y,‘‘) plt.xticks((0,20,40,60,80,100,120),(‘200504‘,‘200912‘,‘201108‘,‘201306‘,‘201502‘,‘201610‘,‘‘)) plt.xlabel(‘年月‘) plt.ylabel(‘XX事件數‘) plt.title(‘每月XX事件數‘) plt.show()
4.取片段數據,同一張圖畫兩條折線來區分
y1=y[79:91] y2=y[91:102] x1=range(0,len(y1)) x2=range(0,len(y2)) plt.figure(figsize=(10, 6)) plt.plot(x1,y1,‘‘,label="2015年") plt.plot(x2,y2,‘‘,label="2016年") plt.title(‘2015-2016年月XX事件數‘) plt.legend(loc=‘upper right‘) plt.xticks((0,2,4,6,8,10),(‘1月‘,‘3月‘,‘5月‘,‘7月‘,‘9月‘,‘11月‘)) plt.xlabel(‘月份‘) plt.ylabel(‘XX事件數‘) plt.grid(x1) plt.show()
5.讀取小時頻數數據,畫重疊的條形圖
data_hour2015 = pd.read_csv(‘data_hour2015.txt‘)
data_hour2016 = pd.read_csv(‘data_hour2016.txt‘)
plt.figure(figsize=(10, 6))
data_hour2015[‘nums‘].T.plot.bar(color=‘g‘,alpha=0.6,label=‘2015年‘)
data_hour2016[‘nums‘].T.plot.bar(color=‘r‘,alpha=0.4,label=‘2016年‘)
plt.xlabel(‘小時‘)
plt.ylabel(‘XX事件數量‘)
plt.title(‘XX事件數小時分布‘)
plt.legend(loc=‘upper right‘)
plt.show()
6.讀取周頻數數據,畫非重疊的條形圖
data_week2015 = pd.read_csv(‘data_week2015.txt‘)[‘nums‘].T.values
data_week2016 = pd.read_csv(‘data_week2016.txt‘)[‘nums‘].T.values
plt.figure(figsize=(10, 6))
xweek=range(0,len(data_week2015))
xweek1=[i+0.3 for i in xweek]
plt.bar(xweek,data_week2015,color=‘g‘,width = .3,alpha=0.6,label=‘2015年‘)
plt.bar(xweek1,data_week2016,color=‘r‘,width = .3,alpha=0.4,label=‘2016年‘)
plt.xlabel(‘周‘)
plt.ylabel(‘XX事件數量‘)
plt.title(‘XX事件數周分布‘)
plt.legend(loc=‘upper right‘)
plt.xticks(range(0,7),[‘星期日‘,‘星期一‘,‘星期二‘,‘星期三‘,‘星期四‘,‘星期五‘,‘星期六‘])
plt.show()
7.讀取類別頻數數據畫水平條形圖
data_bar = pd.read_csv(‘data_bar.txt‘)
label = data_bar[‘wfxw‘].T.values
xtop = data_bar[‘nums‘].T.values
idx = np.arange(len(xtop))
fig = plt.figure(figsize=(12,12))
plt.barh(idx, xtop, color=‘b‘,alpha=0.6)
plt.yticks(idx+0.4,label)
plt.grid(axis=‘x‘)
plt.xlabel(‘XX事件次數‘)
plt.ylabel(‘XX事件名稱‘)
plt.title(‘2015.1-2016.11月XX事件排行榜‘)
plt.show()
Python--matplotlib 繪圖可視化練手--折線圖/條形圖