前言
前幾天我們學習了pandas讀取數據,還學習了如何用patplotlib繪制柱狀圖和折線圖。
今天我們繼續學習,如何繪制條形圖和餅狀圖。
一、課程回顧-pandas讀取數據
1.示例數據文件
這里我們用到的依舊是d盤底下的這個excel工作簿,這個工作簿里面有四個工作表,如下:
我們今天用到的是第三個表和第四個表里面的數據,數據如下:
數據表:各個產品銷量
數據表:各大區總利潤
2.pandas讀取數據
import pandas as pdfile_name=r"D:\數據可視化示例Excel文件.xlsx"
首先我們導入pandas庫,同時將我們的示例文件的路徑用file_name來表示
nums_products=pd.read_excel(file_name,sheet_name="各個產品銷量")
print("讀取各個產品銷量")
print(nums_products)
接下來我們讀取“各月銷售額”這個表格的數據
profit_continent=pd.read_excel(file_name,sheet_name="各大區總利潤")
print("讀取各大區總利潤")
print(profit_continent)
接下來我們讀取“各大區總利潤”這個表格的數據
可以看到,我們通過pandas庫成功地讀取到了數據可視化示例Excel文件.xlsx這個工作簿里面,名為“各個產品銷量”的工作表的數據。
二、matplotlib繪制條形圖和餅狀圖
1.繪制折線圖
plt.barh(nums_products.產品,height=0.5,width=nums_products.銷量,align="center",label="銷量")plt.title("各種產品銷量條形圖",loc="center")for a,b in zip(nums_products.產品,nums_products.銷量):plt.text(b,a,b,ha="center",va="center",fontsize=15,color="red")plt.ylabel("產品名稱")
plt.xlabel("二月份銷量")plt.grid(False)plt.legend()plt.show()
這里我還是簡單說一下各行代碼的含義,因為上一篇文章講的很詳細,所以就不多說
點擊這里跳轉到上一篇文章
第一行表示這是條形圖,并設置圖形的各個參數
第二行設置標題
第三四行設置數據標簽
第五六行設置橫縱坐標的意義
第七行表示不要網格線,可以刪掉,因為默認就是不要網格線
第八行表示增加圖例
第九行表示展示生成的條形圖
最后我們將代碼進行整合
import matplotlib.pyplot as plt
import pandas as pdfile_name=r"D:\數據可視化示例Excel文件.xlsx"nums_products=pd.read_excel(file_name,sheet_name="各個產品銷量")
print("讀取各個產品銷量")
print(nums_products)plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus'] = Falseplt.barh(nums_products.產品,height=0.5,width=nums_products.銷量,align="center",label="銷量")plt.title("各種產品銷量條形圖",loc="center")for a,b in zip(nums_products.產品,nums_products.銷量):plt.text(b,a,b,ha="center",va="center",fontsize=15,color="red")plt.ylabel("產品名稱")
plt.xlabel("二月份銷量")plt.grid(False)plt.legend()plt.show()
運行代碼后我們可以得到條形圖如下:
2.繪制餅狀圖
import matplotlib.pyplot as plt
import pandas as pdfile_name=r"D:\數據可視化示例Excel文件.xlsx"profit_continent=pd.read_excel(file_name,sheet_name="各大區總利潤")
print("讀取各大區總利潤")
print(profit_continent)plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus'] = Falseplt.pie(profit_continent.利潤,labels=profit_continent.大區,autopct="%.0f%%",shadow=True,radius=1.0)
plt.title("各大洲利潤餅狀圖",loc="center",fontdict={"size":"15","color":"red","weight":"bold"})
plt.show()
運行后結果如下:
當然,上述圖形并不好看,因為matplotlib在最開始的時候只是為了滿足工業作圖的要求,能做出來就行了,要什么自行車。
但是隨著互聯網的發展,這種圖已經滿足不了我們的需求了。
有興趣的同學可以自行去了解一下如何優化這些圖形。
當然,如果有興趣,后續我們可以講一講seaborn等第三庫,那才是真正精彩的世界。
總結
今天我們復習了前一天學習的pandas讀取excel表格的數據,同時學習了如何用matplotlib庫將讀取的數據生成條形圖和餅狀圖。
后面有時間我們再更新學習其它圖知識的文章。
有興趣的朋友可以點個關注和訂閱喲!!!!