import matplotlib.pyplot as plt #匯入matplotlib庫中的pyplot並起別名為plt
%matplotlib inline #讓圖表直接在Jupyter Notebook中展示出來
plt.rcParams["font.sans-serif"]='SimHei' #解決中文亂碼的問題
plt.rcParams['axes.unicode_minus']=False #解決負號無法正常顯示的問題
%config InlineBackend.figure_format='svg' #將圖表設定成向量圖
#fig=plt.figure(figsize=(10,8)) #建立畫布 寬為10,高為8
"""
#方法一:用add_subplot函式建立座標系
fig=plt.figure() #先建立畫布,再建立座標系
#ax1=fig.add_subplot(1,1,1) #在畫布上繪製1×1個座標系
ax1=fig.add_subplot(2,2,1) #同時繪製2×2個座標,即4個座標系
ax2=fig.add_subplot(2,2,2) #同時繪製2×2個座標,即4個座標系
ax3=fig.add_subplot(2,2,3) #同時繪製2×2個座標,即4個座標系
ax4=fig.add_subplot(2,2,4) #同時繪製2×2個座標,即4個座標系
"""
"""
#方法二:用subplot2grid函式建立座標系
#plt.subplot2grid((2,2),(0,0)) #將圖表的整個區域分成2行2列,且在(0,0)位置繪圖
import numpy as np
x=np.arange(6)
y=np.arange(6)
plt.subplot2grid((2,2),(0,0)) #將圖表的整個區域分成2行2列,且在(0,0)位置繪圖
plt.plot(x,y) #繪製折線圖
plt.subplot2grid((2,2),(0,1)) #將圖表的整個區域分成2行2列,且在(0,1)位置繪圖
plt.bar(x,y) #繪製柱狀圖
"""
"""
#方法三:用subplot函式建立座標系
import numpy as np
x=np.arange(6)
y=np.arange(6)
plt.subplot(2,2,1) #將圖表的整個區域分成2行2列,且在第1個座標系上做折線圖
plt.plot(x,y)
plt.subplot(2,2,4) #將圖表的整個區域分成2行2列,且在第4個座標系上做折線圖
plt.bar(x,y)
"""
"""
#方法四:用plt.subplots函式建立座標系
fig,axes=plt.subplots(2,2) #將圖表的整個區域分成2行2列
import numpy as np
x=np.arange(6)
y=np.arange(6)
axes[0,0].plot(x,y)
axes[1,1].bar(x,y)
"""
import pandas as pd
import numpy as np
df=pd.read_excel(r'd:\mypythontest\註冊人數.xlsx',sheet_name=1)
x=df['月份']
y=df['註冊人數']
fig=plt.figure()
"""
#單座標 (張俊紅p186-p200)
plt.xlabel("月份",labelpad=10,fontsize='xx-large',color="#70AD47",fontweight='bold') #labelpad為到數軸的距離
plt.ylabel("註冊人數",labelpad=10) #labelpad為到數軸的距離
plt.xticks(np.arange(1,10),["1月份","2月份","3月份","4月份","5月份","6月份",
"7月份","8月份","9月份"])
plt.yticks(np.arange(1000,7000,1000),["1000人","2000人","3000人","4000人","5000人","6000人"])
plt.xlim(0,10) #設定x軸的刻度範圍
plt.ylim(0,8000) #設定y軸的刻度範圍
plt.axis("off") #不顯示座標軸
plt.grid(b="True") #顯示網格線
plt.grid(b="True",axis="x") #只顯示x軸的網格線
plt.grid(b="True",axis="y") #只顯示y軸的網格線
plt.grid(b="True",linestyle='dashed') #只顯示x軸的網格線
plt.plot(x,y)
plt.plot(x,y,label="折線圖")
plt.bar(x,y,label="柱狀圖")
plt.legend() #以上三句完成設定圖例
plt.legend(loc="upper left") #將圖例顯示在左上角位置,與loc=2作用一樣
plt.legend(ncol=2) #將圖例顯示在右上角
plt.title(label="1-9月XXX公司註冊使用者數",loc="left") #loc引數right,center
for a,b in zip(x,y):
plt.text(a,b,b,ba='center',va='bootom',fontsize=11)
#a,b為x,y座標,b為顯示的值,ba為橫向居中,va為縱向居下
plt.annotate("伺服器宕機了",xy=(5,1605),xytext=(6,1605),
arrowprops=dict(facecolor='black',arrowstyle='->'))
#計劃值與完成值同時顯示在一個座標中,並新增表格
import matplotlib.pyplot as plt #匯入matplotlib庫中的pyplot並起別名為plt
%matplotlib inline
plt.rcParams["font.sans-serif"]='SimHei' #解決中文亂碼的問題
plt.rcParams['axes.unicode_minus']=False #解決負號無法正常顯示的問題
%config InlineBackend.figure_format='svg'
import pandas as pd
import numpy as np
df=pd.read_excel(r'd:\mypythontest\註冊人數.xlsx',sheet_name=1)
x=df['月份']
y=df['註冊人數']
z=df['計劃人數']
fig=plt.figure()
plt.xlabel("月份",labelpad=10,fontsize='xx-large',color="#70AD47",fontweight='bold') #labelpad為到數軸的距離
plt.ylabel("註冊人數",labelpad=10) #labelpad為到數軸的距離
plt.xticks(np.arange(1,10),x)
plt.yticks(np.arange(1000,7000,1000),["1000人","2000人","3000人","4000人","5000人","6000人"])
plt.xlim(0,10) #設定x軸的刻度範圍
plt.ylim(0,8000) #設定y軸的刻度範圍
plt.bar(x,y,label="註冊值",color='r')
plt.bar(x,z,label="計劃值",color='b')
plt.legend(ncol=2) #以上三句顯示圖例
cellText=[df["註冊人數"],df["計劃人數"]] #以下語句顯示資料表
rows =["註冊人數","計劃人數"]
columns=df["月份"]
plt.table(cellText=cellText,cellLoc='center',rowLabels=rows,colLabels=columns,colLoc="left",loc="bottom")
"""
"""
#2個座標
plt.subplot(2,1,1)
plt.plot(x,y)
plt.xlabel("月份")
plt.ylabel("註冊人數")
plt.tick_params(axis="both",which="both",direction="inout",Labelbottom="False")
#軸刻度線設定成雙向且下軸刻度線不顯示
plt.subplot(2,1,2)
plt.plot(x,y)
plt.xlabel("月份")
plt.ylabel("註冊人數")
plt.tick_params(axis="both",which="both",direction="inout",Labelbottom="True")
#軸刻度線設定成雙向且下軸刻度線顯示
"""