1. 程式人生 > >Python Matplotlib做(柱+折線)組合圖加資料標籤

Python Matplotlib做(柱+折線)組合圖加資料標籤

import seaborn as sns
import matplotlib
import matplotlib.pyplot as plt

#設定字型、圖形樣式
sns.set_style("whitegrid")
matplotlib.rcParams['font.sans-serif'] = ['SimHei']
matplotlib.rcParams['font.family']='sans-serif'
matplotlib.rcParams['axes.unicode_minus'] = False
#matplotlib.fontsize='15'

#取做圖資料
x=range(len(gsbf['統計日期']))
y1=gsbf['累計保費']
y2=gsbf['同比(%)']

#設定圖形大小
plt.rcParams['figure.figsize'] = (12.0,5.0) 

fig = plt.figure()

#畫柱子
ax1 = fig.add_subplot(111)
ax1.bar(x, y1,alpha=.7,color='g')
ax1.set_ylabel('累計保費(萬元)',fontsize='15')
ax1.set_title("近年同期公司累計保費收入與同比增速",fontsize='20')  
plt.yticks(fontsize=15)
plt.xticks(x,gsbf['統計日期'])
plt.xticks(fontsize=15)


#畫折線圖
ax2 = ax1.twinx()  # 這個很重要噢
ax2.plot(x, y2, 'r',marker='*',ms=10)

ax2.set_xlim([-0.5,3.5])
ax2.set_ylim([0,45])
ax2.set_ylabel('同比增速(%)',fontsize='15')
ax2.set_xlabel('同比增速(%)')


#縱軸標籤
plt.yticks(fontsize=15)
plt.xticks(x,gsbf['統計日期'])
plt.xticks(fontsize=15)
plt.grid(False)

#新增資料標籤
for x, y ,z in zip(x,y2,y1):
        plt.text(x, y+0.3, str(y), ha='center', va='bottom', fontsize=20,rotation=0)
        plt.text(x, z-z, str(int(z)), ha='center', va='bottom', fontsize=21,rotation=0)
     

#儲存圖片 dpi為影象解析度
plt.savefig('e:/tj/month/fx1806/公司保費增速與同比.png',dpi=600,bbox_inches = 'tight')
#顯示圖片
plt.show()

 效果如下: