日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

Matplotlib中的titles(標題)、labels(標簽)和legends(圖例)

來源: 責編: 時間:2023-12-12 17:02:51 283觀看
導讀Matplotlib是一個Python中常用的繪圖庫,用于創建各種類型的圖表。在Matplotlib中,你可以使用titles(標題)、labels(標簽)和legends(圖例)來增強你的圖表。本文討論Python的Matplotlib繪圖庫中可用的不同標記選項。Figure, sub

Matplotlib是一個Python中常用的繪圖庫,用于創建各種類型的圖表。在Matplotlib中,你可以使用titles(標題)、labels(標簽)和legends(圖例)來增強你的圖表。本文討論Python的Matplotlib繪圖庫中可用的不同標記選項。RUj28資訊網——每日最新資訊28at.com

RUj28資訊網——每日最新資訊28at.com

Figure, subplots 和axes列表

在Matplotlib中,Figure是整個圖形窗口,它可以包含一個或多個子圖(Axes)。Axes是實際繪圖區域,而Figure則是包含所有Axes、標題、標簽等元素的容器。RUj28資訊網——每日最新資訊28at.com

在使用可以使用Matplotlib時可以使用plt.subplots()命令一次創建多個子圖的占位符,輸入參數nrows和ncols定義要返回的行和列的數量。返回數組包含ncols=2個元素的nrows=2個列表。每個元素都引用一個子圖。RUj28資訊網——每日最新資訊28at.com

import matplotlib.pyplot as plt  fig, axs = plt.subplots(  nrows=2, ncols=2, figsize=(10, 7), sharex=True, sharey=True )  # Fig = Figure object, # axs = list of axes # axs = [[ax1, ax2],  #       [ax3, ax4]]

axes和labels

axis指的是子圖,通常稱為ax的軸對象中的x軸和y軸的一個組合。我們使用列表推導遍歷所有軸,并使用ax.set_xlabel("whatever")為每個子圖分配xlabel和ylabel??梢酝ㄟ^調用ax2 = ax.twinx()來創建另一個y軸;ax2.set_ylabel(“Second y-axis”);但這會使繪制圖例等事情變得復雜,因為現在繪圖配置在同一子圖中被分成兩個容器,所以我們一般都會將一個x軸和y軸放在一個子圖中,也就是我們上面說的一個組合。RUj28資訊網——每日最新資訊28at.com

i = 1 for ax in [item for sublist in axs for item in sublist]:  ax.set_xlabel(f"xlabel {i}")  ax.set_ylabel(f"ylabel {i}")  i+=1

Titles

每個子圖最多可以有三個標題Titles 。默認情況下,子圖標題顯示在子圖的上方。使用loc參數可以將唯一的標題與子圖的左邊緣或右邊緣對齊,也可以向子圖添加其他標題。有時將主標題左對齊并添加更多信息(如數據源)可能會很有用,或者使用不同的字體或較小的字體右對齊。RUj28資訊網——每日最新資訊28at.com

ax.set_title(f"Title {i} left", loc="left", fnotallow=8) ax.set_title(f"Title {i} right", loc="right", fnotallow=10) ax.set_title(f"Title {i} center", loc="center", fnotallow=14)

在Matplotlib中,set_title和set_ylabel等函數可以將字體、字體大小和字體粗細作為參數或作為一個名為fontdict的字典。RUj28資訊網——每日最新資訊28at.com

ax.set_title(f"Title {i} left", loc="left", fnotallow=dict(  size=8,   family="Times New Roman",   weight="bold") )

圖的Title 和label

圖標題在Matplotlib中稱為suptitle。默認情況下,它是一個標題,在最上面的子標題中間對齊,字體大小比普通的子標題大。RUj28資訊網——每日最新資訊28at.com

與軸標簽類似,y軸和x軸也有替代標簽。默認情況下,Supylabel以居中對齊的方式出現在圖的左側,而supxlabel以居中對齊的方式出現在圖的底部。RUj28資訊網——每日最新資訊28at.com

可以自定義圖形標簽和標題的位置,方法是使用x和y參數,ha用于水平對齊,va用于垂直對齊。x和y所指向的圖坐標是從圖的左下角開始的0到1之間的數字。suptitle的默認值是x=0.5和y=0.98,這使得它位于頂部和中間。RUj28資訊網——每日最新資訊28at.com

fig.suptitle("Suptitle", fnotallow=20) fig.supylabel("Supylabel", fnotallow=16) fig.supxlabel("Supxlabel", fnotallow=16)

子的圖例legends

圖例是子圖中的輔助框,它告訴我們哪些數據點屬于哪個邏輯組。當在單個子圖中有多條線、多組標記等時,它們尤其有用。當調用ax.legend()時,每個沒有以下劃線開頭的標簽且包含在軸對象中的藝術家都會生成一個軸圖例條目。像ax.scatter()和ax.plot()這樣的繪圖函數將label作為參數,默認情況下,這是創建圖例時使用的標簽。RUj28資訊網——每日最新資訊28at.com

ax.scatter(  np.random.random(30) * 0.45 + 0.3,  np.random.random(30) * 0.45 + 0.3,  label="label for data",  alpha=0.3, ) ax.legend(title=f"Legend {i} title", fnotallow=8)

如果子圖包含多個軸,例如當調用ax.twinx()時,需要在繪制圖例之前收集對藝術家的引用并將它們組合起來,以避免在同一子圖中繪制兩個圖例。RUj28資訊網——每日最新資訊28at.com

lines_ax = ax.get_lines()  lines_ax2 = ax2.get_lines()   lines = lines_ax + lines_ax2  labels = [line.get_label() for line in lines]  ax.legend(lines, labels, title=f"Legend {i} title", fnotallow=8)

總結

通過上面的介紹,我們應該對這幾個術語有了一定了解,那么我們來看看下面的代碼RUj28資訊網——每日最新資訊28at.com

import matplotlib.pyplot as plt import numpy as np  fig, axs = plt.subplots(  nrows=2, ncols=2, figsize=(10, 7),   sharex=True, sharey=True, squeeze=True )  i = 1 for ax in [item for sublist in axs for item in sublist]:  ax.set_xlabel(f"xlabel {i}")  ax.scatter(    np.random.random(30) * 0.45 + 0.3,    np.random.random(30) * 0.45 + 0.3,    label="label for data",    alpha=0.3,  )  ax.legend(title=f"Legend {i} title", fnotallow=8)  ax.set_xlim(0, 1)  ax.set_ylim(0, 1)  ax.set_title(f"Title {i} left", loc="left", fnotallow=8)  ax.set_title(f"Title {i} right", loc="right", fnotallow=10)  ax.set_title(f"Title {i} center", loc="center", fnotallow=14)   ax.tick_params(labelleft=False, labelbottom=False)  ax.set_ylabel(f"ylabel {i}")  i += 1  fig.suptitle("Suptitle", fnotallow=20) fig.supylabel("Supylabel", fnotallow=16) fig.supxlabel("Supxlabel", fnotallow=16)  plt.tight_layout() plt.savefig("fig.png", dpi=200)

這就是繪制最上面圖的代碼,我們再把圖展示一下,這樣可以更加直觀:RUj28資訊網——每日最新資訊28at.com

RUj28資訊網——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-43329-0.htmlMatplotlib中的titles(標題)、labels(標簽)和legends(圖例)

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 聊一聊雪花算法與分布式ID生成

下一篇: Java中不建議使用foreach的六大場景

標簽:
  • 熱門焦點
Top 主站蜘蛛池模板: 中山市| 大冶市| 清远市| 南岸区| 西峡县| 秦安县| 卓尼县| 仪陇县| 武清区| 岑巩县| 桂林市| 安仁县| 伊金霍洛旗| 商水县| 顺义区| 水城县| 澜沧| 白水县| 屯留县| 象州县| 徐水县| 赣州市| 梧州市| 池州市| 微山县| 普兰县| 彰化县| 安泽县| 海晏县| 通江县| 汉川市| 陆良县| 饶平县| 佛山市| 星子县| 崇礼县| 长宁县| 景德镇市| 满洲里市| 凤翔县| 抚宁县|