Python資料視覺化:折線圖、柱狀圖、餅圖程式碼
阿新 • • 發佈:2021-01-21
本文的文字及圖片來源於網路,僅供學習、交流使用,不具有任何商業用途,如有問題請及時聯絡我們以作處理。
作者:godweiyang
來源:演算法碼上來
Python爬蟲、資料分析、網站開發等案例教程視訊免費線上觀看
https://space.bilibili.com/523606542
有很多很牛b的作圖教程,我也學不來,就扔給大家自己學吧:
折線圖
程式碼
import numpy as np import matplotlib.pyplot as plt # x軸刻度標籤 x_ticks = ['a', 'b', 'c', 'd', 'e', 'f'] # x軸範圍(0, 1, ..., len(x_ticks)-1)x = np.arange(len(x_ticks)) # 第1條折線資料 y1 = [5, 3, 2, 4, 1, 6] # 第2條折線資料 y2 = [3, 1, 6, 5, 2, 4] # 設定畫布大小 plt.figure(figsize=(10, 6)) # 畫第1條折線,引數看名字就懂,還可以自定義資料點樣式等等。 plt.plot(x, y1, color='#FF0000', label='label1', linewidth=3.0) # 畫第2條折線 plt.plot(x, y2, color='#00FF00', label='label2', linewidth=3.0) # 給第1條折線資料點加上數值,前兩個引數是座標,第三個是數值,ha和va分別是水平和垂直位置(資料點相對數值)。for a, b in zip(x, y1): plt.text(a, b, '%d'%b, ha='center', va= 'bottom', fontsize=18) # 給第2條折線資料點加上數值 for a, b in zip(x, y2): plt.text(a, b, '%d'%b, ha='center', va= 'bottom', fontsize=18) # 畫水平橫線,引數分別表示在y=3,x=0~len(x)-1處畫直線。 plt.hlines(3, 0, len(x)-1, colors = "#000000", linestyles = "dashed")# 新增x軸和y軸刻度標籤 plt.xticks([r for r in x], x_ticks, fontsize=18, rotation=20) plt.yticks(fontsize=18) # 新增x軸和y軸標籤 plt.xlabel(u'x_label', fontsize=18) plt.ylabel(u'y_label', fontsize=18) # 標題 plt.title(u'Title', fontsize=18) # 圖例 plt.legend(fontsize=18) # 儲存圖片 plt.savefig('./figure.pdf', bbox_inches='tight') # 顯示圖片 plt.show()
效果
柱狀圖
程式碼
import numpy as np import matplotlib.pyplot as plt # x軸刻度標籤 x_ticks = ['a', 'b', 'c', 'd', 'e', 'f'] # 柱的寬度 barWidth = 0.25 # 第1個柱的x軸範圍(每個柱子的中點)(0, 1, ..., len(x_ticks)-1) x1 = np.arange(len(x_ticks)) # 第2個柱的x軸範圍(每個柱子的中點) x2 = [x + barWidth for x in x1] # 第1個柱資料 y1 = [5, 3, 2, 4, 1, 6] # 第2個柱資料 y2 = [3, 1, 6, 5, 2, 4] # 設定畫布大小 plt.figure(figsize=(10, 6)) # 畫第1個柱 plt.bar(x1, y1, color='#FF0000', width=barWidth, label='label1') # 畫第2個柱 plt.bar(x2, y2, color='#00FF00', width=barWidth, label='label2') # 給第1個柱資料點加上數值,前兩個引數是座標,第三個是數值,ha和va分別是水平和垂直位置(資料點相對數值)。 for a, b in zip(x1, y1): plt.text(a, b, '%d'%b, ha='center', va= 'bottom', fontsize=18) # 給第2個柱資料點加上數值 for a, b in zip(x2, y2): plt.text(a, b, '%d'%b, ha='center', va= 'bottom', fontsize=18) # 畫水平橫線 plt.hlines(3, 0, len(x_ticks)-1+barWidth, colors = "#000000", linestyles = "dashed") # 新增x軸和y軸刻度標籤 plt.xticks([r + barWidth/2 for r in x1], x_ticks, fontsize=18) plt.yticks(fontsize=18) # 新增x軸和y軸標籤 plt.xlabel(u'x_label', fontsize=18) plt.ylabel(u'y_label', fontsize=18) # 標題 plt.title(u'Title', fontsize=18) # 圖例 plt.legend(fontsize=18) # 儲存圖片 plt.savefig('./figure.pdf', bbox_inches='tight') # 顯示圖片 plt.show()
效果
餅圖
程式碼
import numpy as np import matplotlib.pyplot as plt # 設定畫布大小 plt.figure(figsize=(10, 10)) # 設定每塊區域的標籤 labels = ['a', 'b', 'c', 'd', 'e'] # 設定每塊區域離圓心的距離,這裡a區域凸出一點點 explode = [0.05, 0.01, 0.01, 0.01, 0.01] # 設定每塊區域的值 values = [1, 5, 2, 4, 3] # 設定每塊區域的顏色 colors = ['#F5DEB3', '#87CEFA', '#FFB6C1', '#90EE90', '#D3D3D3'] _, l_text, p_text = plt.pie(values, explode=explode, labels=labels, autopct='%1.1f%%', colors=colors) # 設定標籤字型大小 for t in l_text: t.set_size(18) # 設定數值字型大小 for t in p_text: t.set_size(18) # 標題 plt.title(u'Title', fontsize=18) # 圖例 plt.legend(fontsize=18) # 儲存圖片 plt.savefig('./figure.pdf', bbox_inches='tight') # 顯示圖片 plt.show()
效果