1.需求
讀取excel的數據,繪制散點圖,並保存圖片。
2.所需要的包/模塊
- excel:xlrw
- 可視化:matplotlib
3.具體代碼實現

#-*- coding:utf-8 -*- import matplotlib.pyplot as plt import xlrd rbook = xlrd.open_workbook('testData.xlsx') table = rbook.sheet_by_index(0) nrows = table.nrows ncols = table.ncols a1_values = table.col_values(1) a2_values = table.col_values(2) a3_values = table.col_values(3) a4_values = table.col_values(4) #圖1 plt.figure(1,figsize=(16, 12)) plt.subplot(121) plt.title("圖a") plt.xlabel("x") plt.ylabel("y") plt.rcParams['font.sans-serif']=['SimHei'] plt.rcParams['axes.unicode_minus'] = False plt.scatter(a1_values,a2_values,s=30) #圖2 plt.figure(1,figsize=(16, 12)) plt.subplot(122) plt.title("圖2") plt.xlabel("x") plt.ylabel("y") plt.rcParams['font.sans-serif']=['SimHei'] plt.rcParams['axes.unicode_minus'] = False plt.scatter(a3_values,a4_values,s=30) plt.subplots_adjust(left=None, bottom=None, right=None, top=None,wspace=0.3, hspace=0.3) plt.savefig('test.png') plt.show()
4.遇到的問題及解決辦法
1)標題無法顯示中文:
加以下兩句可解決:
plt.rcParams[‘font.sans-serif’]=[‘SimHei’] #用來正常顯示中文標簽 plt.rcParams[‘axes.unicode_minus’]=False #用來正常顯示負號
2)多圖重疊:
調整子圖之間的間距,通過設置圖片之間的參數
plt.subplots_adjust(left=None, bottom=None, right=None, top=None,wspace=0.3, hspace=0.3)
- top、bottom、left、right:整個圖距離上下左右邊框的距離
- wspace、hspace:調整各個子圖之間的間距
- wspace:調整子圖之間的橫向間距
- hspace:調整子圖之間縱向間距
3)savefig出現空白圖片
plt.savefig()要在plt.show()之前
5.結果
6.可優化部分/后續進程
1)標注每個點所對應的文本標簽;
2)將離群點用別的顏色顯示出來;
3)統一所有圖的坐標系;
......