matplotlib基本圖形繪制操作實例
matplotlib
matplotlib是最流行的python底層繪圖庫,接下來就由小編為大家介紹一些關于matplotlib的一些基本圖形的繪制操作。這些操作可以將你的數(shù)據(jù)更加直觀的呈現(xiàn)在你的面前。
首先要使用Import導入pyplot庫并設置一個別名plt
from matplotlib import pyplot as plt
1.折線圖
以下實例繪制氣溫曲線。(氣溫是依靠numpy中隨機數(shù)產生的,因此要導入numpy)
import numpy as np import random a = [np.random.randint(20, 35) for i in range(120)] x = np.arange(0, 120) fig = plt.figure(figsize=(20, 8), dpi=80) # 設置圖形大小和圖形分辨率 plt.plot(x, a) #調用plot繪制圖形 將x軸坐標和對應的y軸的點傳入 # 調整x軸的刻度 _x = list(x) _xtick_labels = ['10點{}分'.format(i) for i in range(60)] _xtick_labels += ['11點{}分'.format(i) for i in range(60)] plt.xticks(_x[::3], _xtick_labels[::3], rotation=45) # rotation表示x軸標簽旋轉度數(shù) # 添加描述信息 plt.xlabel('時間') plt.ylabel('溫度 單位(C)') plt.title('10點-12點每分鐘的氣溫變化') plt.show()
運行后發(fā)現(xiàn)中文字體無法顯示。
這是因為matplotlib在繪制過程中無法顯示中文,需要自己設置。
plt.rcParams['font.sans-serif'] = ['YouYuan'] plt.rcParams['axes.unicode_minus'] = False
加入這些代碼后,中文就可以正常顯示了
我們還可以加入網(wǎng)格 使圖像y軸對應的值更加清楚
gitd()語法格式
matplotlib.pyplot.grid(b=None, which='major',axis='both)
b,which,axis 都是可選的操作
只要在代碼末行添加以下一行代碼即可
plt.grid()
2.散點圖
(使用scatter方法繪制散點圖)
from numpy as np import random a = np.random.randint(6, 25, size=(31,)) a = list(a) b = np.random.randint(12, 23, size=(31,)) # 設置字體 plt.rcParams['font.sans-serif'] = ['YouYuan'] plt.rcParams['axes.unicode_minus'] = False x1 = np.arange(1, 32) x2 = np.arange(40, 71) # 使用plt.scatter()繪制散點圖 plt.scatter(x1, a, label='三月', s=20, color='orange') plt.scatter(x2, b, label='四月',s=10, color='red') # label表示不同顏色點的標簽,s是點的大小,color設置點的顏色 # 設置x軸刻度 _x = list(x1) + list(x2) _xtick_labels = ['三月{}日'.format(i) for i in x1] _xtick_labels += ['四月{}日'.format(i-39) for i in x2] plt.xticks(_x[::3], _xtick_labels[::3], rotation=45) plt.xlabel('時間') plt.legend() plt.ylabel('溫度') plt.show()
運行后
3.條形圖
(使用bar或者barh方法繪制) (1).豎著的條形圖
a = ['貓', '狗', '蛇', '大象', '兔子', '馬', '驢', '斑馬', '獵豹', '豺狼'] b = [32.4, 23.3, 232, 2423, 232, 2332, 123, 132, 213, 132] _x = list(range(len(a))) plt.rcParams['font.sans-serif'] = ['YouYuan'] plt.rcParams['axes.unicode_minus'] = False # 設置圖形大小 plt.figure(figsize=(20, 8), dpi=80) # 豎著的條形圖 使用bar函數(shù) # width表示柱形寬距 plt.bar(_x, b, width=0.3) plt.xticks(_x, a) plt.xlabel('動物種類') plt.ylabel('動物數(shù)量') plt.show()
(2).橫著的條形圖
a = ['貓', '狗', '蛇', '大象', '兔子', '馬', '驢', '斑馬', '獵豹', '豺狼'] b = [32.4, 23.3, 232, 2423, 232, 2332, 123, 132, 213, 132] _x = list(range(len(a))) plt.rcParams['font.sans-serif'] = ['YouYuan'] plt.rcParams['axes.unicode_minus'] = False # 設置圖形大小 plt.figure(figsize=(20, 15), dpi=80) # 橫著的條形圖 使用barh函數(shù) 注意柱形寬度要使用height plt.barh(_x, b, height=0.3, color='orange') plt.yticks(_x, a) plt.ylabel('動物種類') plt.xlabel('動物數(shù)量') # alpha可以調節(jié)網(wǎng)格顏色深淺 plt.grid(alpha=0.3) plt.show()
4.直方圖
(使用hist方法)
在傳入數(shù)據(jù)之后往往要以以下方式分組
組數(shù):將數(shù)據(jù)分組 當數(shù)據(jù)在100個之內 一般分為5-12組
組距: 每個小組端點的距離
組數(shù) = 極差/組距 = (max() - min()) or numpy.plp()// bin_width
以下案例為電影時長分布直方圖
a = np.random.randint(90, 150, size=(250,)) print(a) plt.figure(figsize=(20, 10), dpi=100) bin_width = 3 # 設置組距 num_bins = int((max(a) - min(a)) // bin_width) # 分組 plt.xticks(list(range(min(a), max(a) + bin_width, bin_width))) plt.hist(a, num_bins) # 傳入需要統(tǒng)計的數(shù)據(jù) 以及組數(shù) plt.show()
但以上案例是組距相同的情況
實際生活往往有許多組距不相同的情況
這時候往往用條形圖來展現(xiàn)組距不相同的情況
a = [0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 60, 90] b = [5, 5, 5, 5, 5, 5, 5, 5, 5, 15, 30, 60] c = [836, 2737, 3723, 3926, 3596, 1438, 3273, 642, 824, 613, 215, 47] plt.figure(figsize=(20, 10), dpi=100) plt.bar(range(len(a)), c, width=1) _x = [i-0.5 for i in range(13)] _xtick_labels = a + [150] # + [150] 使得條形圖能顯示90,150之間的數(shù)據(jù) plt.xticks(_x, _xtick_labels, ) plt.grid(alpha=0.3) plt.show()
以上就是matplotlib基本圖形繪制操作實例的詳細內容,更多關于matplotlib 圖形繪制的資料請關注腳本之家其它相關文章!
相關文章
關于Python參數(shù)解析器argparse的應用場景
這篇文章主要介紹了關于Python參數(shù)解析器argparse的應用場景,argparse 模塊使編寫用戶友好的命令行界面變得容易,程序定義了所需的參數(shù),而 argparse 將找出如何從 sys.argv 中解析這些參數(shù),需要的朋友可以參考下2023-08-08Python實現(xiàn)統(tǒng)計單詞出現(xiàn)的個數(shù)
這篇文章主要介紹了Python實現(xiàn)統(tǒng)計單詞出現(xiàn)的個數(shù),本文給出了實現(xiàn)代碼以及使用方法,需要的朋友可以參考下2015-05-05