網站首頁 編程語言 正文
多子圖
figure是繪制對象(可以理解為一個空白的畫布),一個figure對象可以包含多個Axes子圖,一個Axes是一個繪圖區域,不加設置時,Axes為1,且每次繪圖其實都是在figure上的Axes上繪圖。
我們是在圖形對象上面的Axes區域進行作畫
1.add_axes():添加區域
2.Matplotlib定義一個axes類,該類的對象稱為axes對象(即軸域對象),它指定一個有數值范圍限制的繪圖區域。再給定一個畫布中,可以包含多個axes對象,但是同一個axes對象只能在一個畫布中使用。
2D 繪制區域(axes)包含兩個軸(axis)對象
語法:
add_axes(rect)
該方法用來生成一個axes軸域對象,對象的位置參數由參數rect決定。
rect是位置參數,接受一個由4個元素組成的浮點數列表,形如[left,bottom,width,height],它表示添加到畫布中的矩形區域左下標(x,y),以及寬度和高度
fig=plt.figure(figsize=(4,2),facecolor='g')
#ax1從畫布起始位置繪制,寬高和畫布一致
ax1=fig.add_axes([0,0,1,1])
#ax2從畫布20%的位置開始繪制,寬高是畫布的50%
ax2=fig.add_axes([0.2,0.2,0.5,0.5])
ax3=fig.add_axes([0.0,0.5,0.5,0.5])
ax3.plot([1,2,3,4,6],[2,3,5,8,9])
ax1.plot([1,2,3,4,6],[2,3,5,8,9])
ax2.plot([1,2,3,4,6],[2,3,5,8,9])
注意:每個元素的值是畫布寬度和高度的分數。即將畫布的寬、高作為一個單位。比如,[0.2,0.2,0.5,0.5],它代表從畫布20%的位置開始繪制,寬度是畫布的50%
fig=plt.figure()
#創建區域1
ax1=fig.add_axes([0,0,1,1])
#區域1作畫
plt.plot([1,2,3,4,6],[2,3,5,8,9])
#創建區域2
ax2=fig.add_axes([0.2,0.2,0.5,0.5])
#區域2作畫
plt.plot([1,2,3,4,6],[2,3,5,8,9])
subplot():均等地劃分畫布,只是創建一個包含子圖區域的畫布(返回區域對象)
subplots():既創建一個包含子圖區域的畫布,又創建了一個figure的圖形對象(返回圖形對象和區域對象)
散點圖
matplotlib.pyplot.scatter(s,y,s=None,marker=None,camp=None,norm=None,vmin=None,vmax=None,aipha=None,linewidths=None,edgecolors=None,plotnonfinite=False,data=None,*kwargs)
- x,y散點坐標
- s散點面積
- c散點顏色(默認為藍色,‘b’,其余顏色同plt.plot())
- marker散點樣式(默認為實心圓)
- alpha散點透明度([0,1]之間的數,0表示完全透明,1表示完全不透明)
- linewidths散點的邊緣線寬
- edgecolors散點的邊緣顏色
- camp(Colormap,默認None,標量是一個colormap的名字,只有c是一個浮點數組時才使用)
#x軸數據
x=np.array([1,2,3,4,5,6,7,8])
#y軸數據
y=np.array([]1,4,9,16,7,11,23,18)
#生成一個[0,1)之間的隨機浮點數或N維浮點數組
print((20*np.random.rand(8)**2)
a=(20*np.random.rand(8))**2
plt.scatter(x,y,s)
plt.show()
自定義點的顏色和透明度
x=np.random.rand(50) #rand()生成一個[0,1)之間的隨機浮點數或 N維浮點數組
#y軸數據
y=np.random.rand(50)
#生成一個浮點數組,取值范圍,正態分布的隨機樣本數
s=(10*np.random.randn(50))**2
#顏色可以使用一組數字序列
#如只需要3中顏色
#color=np.resize(np.array([1,2,3]),100)
#顏色隨機
color=np.random.rand(50)
plt.scatter(x,y,s,c=color.alpha=0.5
)
水平柱狀圖
#引入Matplotlib
from matplotlib import pyplot as plt
import numpy as np
#設置中文字體
plt.rcParams['font.sans-serif']=['SimHei']
#中文負號
plt.rcParams['axes.unicode_minus']=False
#設置分辨率100
plt.rcParams['figure.dpi']=100
#設置大小
plt.rcParams['figure.figsize']=(5,3)
調用Matplptlib的barh()函數可以生成水平柱狀圖
barh()函數的用法與bar()函數的用法基本一樣,只是在調用barh()函數使用y參數傳入Y軸數據,使用width參數傳入代表條柱 寬度的數據。
plt.barh(y,width,height=0.8,left=None,*,align=‘center’,**kwargs)
countries=['挪威','德國','中國','美國','瑞典']
#金牌個數
gold_medal=np.array([16,12,9,8,8])
#y軸為國家,寬度為獎牌個數
plt.barh(countries,width=gold_medal)
同位置柱狀圖
#國家
countries=['挪威','德國','中國','美國','瑞典']
#金牌個數
gold_metal=[16,12,9,8,8]
#銀牌個數
silver_medal=[8,10,4,10,5]
#銅牌個數
bronze_metal=[13,5,2,7,5]
#1.將x軸轉換為數值x=np.arange(len(countries))
print(x)
#2.設置圖像寬度
width=0.2
#=======確定x起始位置=====
#金牌起始位置
gold_x=x
#銀牌起始位置
sliver_x=x+width
#銅牌起始位置
bronze_x=x+2*width
#==============分別繪制圖形
#金牌圖形
plt.bar(gold_x,gold_medal,width=width,color='gold')
#銀牌圖形
plt.bar(silver_x,silver_medal,width=width,color='silver')
#銅牌圖形
plt.bar(bronze_x,bronze_medal,width=width,color='saddlebrown')
#=====將x軸的坐標變回來
#注意x標簽的位置居中
plt.xticks(x+width,labels=countries)
#------顯示高度文本-------
for i in range(len(countries)):
#金牌文本設置
plt.text(gold_x[i],gold_medal[i],va="bottom",ha="center")
plt.text(silver_x[i],silver_medal[i],va="bottom",ha="center")
plt.text(bronze_x[i],bronze_medal[i],va="bottom",ha="center")
原文鏈接:https://blog.csdn.net/weixin_66610130/article/details/127039679
相關推薦
- 2022-09-27 React?函數式組件和類式組件詳情_React
- 2022-12-06 Android?SwipeRefreshLayout超詳細講解_Android
- 2022-12-25 一文帶你了解Go語言中的指針和結構體_Golang
- 2022-08-06 使用Gorm操作Oracle數據庫踩坑記錄_Golang
- 2022-06-01 C語言?超詳細介紹與實現線性表中的無頭單向非循環鏈表_C 語言
- 2022-10-09 玩轉Go命令行工具Cobra_Golang
- 2022-09-30 AndroidStudio圖片壓縮工具ImgCompressPlugin使用實例_Android
- 2022-07-04 C#操作Windows服務類System.ServiceProcess.ServiceBase_C#
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支