Python繪圖之詳解matplotlib
一、matplotlib介紹
matplotlib是python從matlab繼承的繪圖庫(kù),可以滿(mǎn)足大部分的日常使用,是目前最流行的底層繪圖庫(kù)。
二、matplotlib的使用
(一)導(dǎo)入模塊【中文顯示】
顯示中文方面mac和windows根據(jù)自己電腦系統(tǒng)選一個(gè)即可
import matplotlib.pyplot as plt # 顯示中文(mac) from matplotlib.font_manager import FontManager fm = FontManager() mat_fonts = set(f.name for f in fm.ttflist) print(mat_fonts) plt.rcParams['font.sans-serif'] = ['Arial Unicode MS'] #顯示中文(windows) from pylab import mpl #以黑體顯示中文 mpl.rcParams['font.sans-serif']=[SimHei] #解決保存圖像是負(fù)號(hào) 顯示為方塊的問(wèn)題 mpl.rcParams['axes.unicode_minus']=False # 導(dǎo)入numpy 方便下面繪圖展示 import numpy as np
(二)畫(huà)布與畫(huà)板,簡(jiǎn)單繪圖
和現(xiàn)實(shí)世界繪圖一樣,在matplotlib里繪圖我們也需定義畫(huà)布和畫(huà)板,其中一個(gè)畫(huà)布里可以存在多個(gè)畫(huà)板。在繪圖時(shí)首先要指明在哪個(gè)畫(huà)板上繪圖。
# 建立一張畫(huà)布 其中包括2行三列六張畫(huà)板 fig,axes=plt.subplots(nrows=2,ncols=3,figsize=(20,8)) # data x為測(cè)試數(shù)據(jù) np.random.seed(100) data=np.random.randn(50) x=np.arange(50) # 在第一個(gè)子圖上做折線(xiàn)圖 axes[0,0].plot(x,data,linestyle='-',color='b',marker='o') # 在第二個(gè)子圖上做直方圖 axes[0,1].hist(data,bins=20,facecolor='c') # 在第三個(gè)子圖上做垂直條形圖同時(shí)加上折線(xiàn) axes[0,2].bar(x,data) axes[0,2].plot(x,data,linestyle='-.',color='r') # 在第四個(gè)子圖上做水平條形圖 axes[1,0].barh(x,data) # 在第五個(gè)子圖上做餅圖 explode為突出顯示的部分 explode=[x*0 for x in range(50)] explode[40]=0.1 axes[1,1].pie(data,explode=explode) # 在第六個(gè)子圖上做散點(diǎn)圖 explode為突出顯示的部分 axes[1,2].scatter(x,data,c='r',marker='o') plt.show()

(三)添加圖片信息
import matplotlib.pyplot as plt
# 顯示中文【mac】
from matplotlib.font_manager import FontManager
fm = FontManager()
mat_fonts = set(f.name for f in fm.ttflist)
print(mat_fonts)
plt.rcParams['font.sans-serif'] = ['Arial Unicode MS']
#設(shè)置所需數(shù)據(jù)
age = range(11, 31)
jack = [1, 0, 1, 1, 2, 4, 3, 2, 3, 4, 4, 5, 6, 5, 4, 3, 3, 1, 1, 1]
tom = [1, 0, 3, 1, 2, 2, 3, 3, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1]
# dpi為設(shè)置像素大小
fig = plt.figure(figsize=(20, 8), dpi=80)
# jack與tom11到30交友記錄
plt.plot(age, jack, 'r', label='jack', linestyle='-', linewidth=5, marker='o')
plt.plot(age, tom, 'g', label='tom', linestyle='-.', linewidth=5, marker='*')
# 設(shè)置x軸數(shù)據(jù)刻度
plt.xticks(age)
# 設(shè)置x軸數(shù)據(jù)標(biāo)簽
plt.xlabel("age", fontsize=20)
# 設(shè)置y軸數(shù)據(jù)標(biāo)簽
plt.ylabel("numbers", fontsize=20)
# 設(shè)置圖表標(biāo)題
plt.title("friends made from 11 to 30", fontsize=20)
# 設(shè)置網(wǎng)格線(xiàn)
plt.grid()
# 設(shè)置圖例位置
plt.legend(loc=0)
# 添加水印
plt.text(30, 2, "交友記錄", fontsize=200, color='black', ha='right', va='bottom', alpha=0.1)
# 添加數(shù)據(jù)標(biāo)簽
plt.text(23, 6, 'max num', fontsize=20, color='b', verticalalignment='center')
#將圖保存到當(dāng)前目錄 命名為test.png
plt.savefig('test.png')
plt.show()

到此這篇關(guān)于Python繪圖之詳解matplotlib的文章就介紹到這了,更多相關(guān)python繪圖之matplotlib內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C++從匯編的視角審視對(duì)象的創(chuàng)建問(wèn)題
這篇文章主要介紹了C++從匯編的視角看對(duì)象的創(chuàng)建,從匯編的視角來(lái)看,調(diào)用構(gòu)造器和調(diào)用 “返回對(duì)象” 的函數(shù)是一樣的,從匯編的角度來(lái)看,對(duì)象就是一堆數(shù)據(jù)的排列,比如說(shuō)最普通的對(duì)象就是數(shù)據(jù)成員按照聲明順序直接排列,需要的朋友可以參考下2022-01-01
關(guān)于C++類(lèi)的成員初始化列表的相關(guān)問(wèn)題
下面小編就為大家?guī)?lái)一篇關(guān)于C++類(lèi)的成員初始化列表的相關(guān)問(wèn)題。小編覺(jué)得挺2016-05-05
C++中std::partial_sort的使用小結(jié)
std::partial_sort?是?C++?標(biāo)準(zhǔn)庫(kù)中的一個(gè)算法,它可以對(duì)容器中的一部分元素進(jìn)行排序,本文主要介紹了C++中std::partial_sort的使用小結(jié),感興趣的可以了解一下2025-04-04
C++實(shí)現(xiàn)假裝藍(lán)屏整蠱小程序
因?yàn)楣ぷ鞯男枰?,有時(shí)候我們離開(kāi)時(shí)并不想讓別人看到我們電腦的內(nèi)容,所以本文為大家分享了一個(gè)基于C++實(shí)現(xiàn)的假裝藍(lán)屏的小程序,需要的可以參考下2023-06-06

