| 項目 | matplotlib的使用 |
| 課程班級博客鏈接 | 班級博客 |
| 這個作業要求鏈接 | 作業要求 |
| 博客名稱 | 2003031118—李偉—Python數據分析第四周作業—第二次作業 |
| 要求 | 每道題要有題目,代碼(使用插入代碼,不會插入代碼的自己查資料解決,不要直接截圖代碼!!),截圖(只截運行結果)。 |
拓展閱讀的心得:
擴展閱讀:matplotlib常用設置
擴展閱讀:matplotlib進階設置
學會了matplotlib的一些基本的使用。圖像的大小設置、刻度和標注特殊設置(直接在X軸上標注和通過注釋annotate的形式標注在合適的位置)、增加X軸和Y軸的間隙、移動刻度標注、調整圖像邊緣及圖像的空白間隙、子圖像統一標題設置、圖像中標記線和區域的繪制。
為了在圖表中能夠顯示中文和負號等,需要下面一段設置:
1 import matplotlib.pyplot as plt 2 plt.rcParams['font.sas-serig']=['SimHei'] #用來正常顯示中文標簽 3 plt.rcParams['axes.unicode_minus']=False #用來正常顯示負號
在代碼執行過程中,有兩種方式更改參數:
- 使用參數字典(rcParams)
- 調用matplotlib.rc()命令 通過傳入關鍵字元祖,修改參數
作業題目:
- 1.課上例題,男女朋友的數量。
- 假設大家在30歲的時候,根據自己的實際情況,統計出來了從11歲到30歲每年交的女(男)朋友的數量如列表a,請繪制出該數據的折線圖,以便分析自己每年交女(男)朋友的數量走勢
- a = [1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]
- 要求: y軸表示個數 x軸表示歲數,比如11歲,12歲等
運行代碼及截圖
1 #引入模塊 2 from matplotlib import pyplot as plt 3 #配置中文 4 plt.rcParams["font.sans-serif"]='SimHei' 5 plt.rcParams["axes.unicode_minus"]=False 6 #設置畫布大小 7 plt.figure(figsize=(15,8),dpi=100) 8 #引入x,y的值 9 x=range(11,31) 10 y=[1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1] 11 #設置x,y軸的范圍 12 _x_ticks=["{}歲".format(i) for i in x] 13 _y_ticks=[range(10)] 14 plt.xticks(x[::1],_x_ticks[::1]) 15 16 plt.plot(x,y) 17 plt.xlabel("年齡") 18 plt.ylabel("個") 19 plt.title("11歲到30歲之間每年交往的男(女)友數") 20 21 plt.show()


- 2.銷量統計
- 假如需要統計量一家店鋪七月、八月上旬1-10日每天店鋪產品銷量個數,并進行銷量趨勢對比
- 七月銷量:[20,50,30,5,10,55,23,33,41,22]
- 八月銷量:[5,10,32,18,20,22,36,63,82,71]
運行代碼及截圖
1 from matplotlib import pyplot as plt 2 from matplotlib import font_manager 3 4 # 解決中文亂碼 5 plt.rcParams['font.sans-serif'] = ['SimHei'] 6 plt.rcParams['font.serif'] = ['SimHei'] 7 8 # 設置字體 9 my_font = font_manager.FontProperties(fname="C:\Windows\Fonts\msyh.ttc") 10 11 # 設置畫布大小 12 plt.figure(figsize=(20, 10), dpi=80) 13 14 x = range(1, 11) 15 y_1 = [20, 50, 30, 5, 10, 55, 23, 33, 41, 22] 16 y_2 = [5, 10, 32, 18, 20, 22, 36, 63, 82, 71] 17 18 plt.plot(x, y_1, label="7月") 19 plt.plot(x, y_2, label="8月") 20 _x = x 21 _xtick_labels = ["{}日".format(i) for i in _x] 22 plt.xticks(x, _xtick_labels, fontproperties=my_font) 23 24 plt.title("1號到10號店鋪產品銷量情況", fontproperties=my_font) 25 26 plt.legend(prop=my_font, loc="best") 27 28 # 繪制網格 29 plt.grid(alpha=0.5) 30 31 plt.show()


浙公網安備 33010602011771號