成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

開發
Matplotlib是一個Python中常用的繪圖庫,用于創建各種類型的圖表。在Matplotlib中,你可以使用titles(標題)、labels(標簽)和legends(圖例)來增強你的圖表。本文討論Python的Matplotlib繪圖庫中可用的不同標記選項。

Matplotlib是一個Python中常用的繪圖庫,用于創建各種類型的圖表。在Matplotlib中,你可以使用titles(標題)、labels(標簽)和legends(圖例)來增強你的圖表。本文討論Python的Matplotlib繪圖庫中可用的不同標記選項。

Figure, subplots 和axes列表

在Matplotlib中,Figure是整個圖形窗口,它可以包含一個或多個子圖(Axes)。Axes是實際繪圖區域,而Figure則是包含所有Axes、標題、標簽等元素的容器。

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

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軸放在一個子圖中,也就是我們上面說的一個組合。

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參數可以將唯一的標題與子圖的左邊緣或右邊緣對齊,也可以向子圖添加其他標題。有時將主標題左對齊并添加更多信息(如數據源)可能會很有用,或者使用不同的字體或較小的字體右對齊。

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的字典。

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

圖的Title 和label

圖標題在Matplotlib中稱為suptitle。默認情況下,它是一個標題,在最上面的子標題中間對齊,字體大小比普通的子標題大。

與軸標簽類似,y軸和x軸也有替代標簽。默認情況下,Supylabel以居中對齊的方式出現在圖的左側,而supxlabel以居中對齊的方式出現在圖的底部。

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

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

子的圖例legends

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

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()時,需要在繪制圖例之前收集對藝術家的引用并將它們組合起來,以避免在同一子圖中繪制兩個圖例。

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)

總結

通過上面的介紹,我們應該對這幾個術語有了一定了解,那么我們來看看下面的代碼

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)

這就是繪制最上面圖的代碼,我們再把圖展示一下,這樣可以更加直觀:

責任編輯:華軒 來源: DeepHub IMBA
相關推薦

2010-09-09 09:34:32

DIV

2009-06-05 10:12:36

Struts標簽庫HTML標簽

2022-10-18 23:53:20

Python數據Matplotlib

2021-01-27 05:30:28

前端筆記標簽

2011-05-10 17:38:23

SEO標題標簽

2010-01-04 20:10:43

MPLS

2009-12-30 15:56:09

MPLS網絡

2012-03-19 16:27:05

JavaHibernate

2010-08-31 12:42:22

CSS a標簽

2010-07-08 16:48:37

UML包圖

2020-09-16 10:12:42

數據分析R代碼

2024-12-25 16:35:53

2020-05-25 15:00:41

matplotlibplot()折線圖

2009-07-10 21:14:53

綜合布線標簽

2024-07-01 08:51:19

可視化數據分析漏斗

2023-11-30 20:51:26

多子圖布局matplotlib

2022-10-17 16:17:24

機器學習算法標簽傳播

2009-08-04 13:41:31

2010-06-12 16:16:47

UML設計

2015-05-21 10:03:04

應用標題ASO
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久亚洲一区 | 中文成人在线 | 日韩av手机在线观看 | 网站黄色在线免费观看 | 中文在线一区 | 91热在线 | 亚洲久在线 | 国产精品久久久久久久久久久久久久 | 99久久国产 | 日本免费视频 | 一区二区三区欧美在线 | 污片在线观看 | 欧州一区二区 | 亚洲欧美国产一区二区三区 | 伊人精品在线 | 欧美性受xxxx | 国产毛片久久久久久久久春天 | 成人黄在线观看 | 999精品视频 | 国产精品嫩草影院精东 | 中文字幕成人免费视频 | 精品久久免费 | 九九热免费观看 | 欧美日韩免费一区二区三区 | 久久亚洲精品国产精品紫薇 | 在线色 | 国产视频综合 | 亚洲精品久久久久久一区二区 | 亚洲精品中文字幕在线观看 | 在线免费观看一区二区 | 久久骚| 国产一区在线免费 | 91精品久久久久久久 | 国产精品一区二区三级 | 国产精品一区二区三区久久 | 粉嫩粉嫩芽的虎白女18在线视频 | www.久| 亚洲精品一区国产精品 | 精品国产乱码久久久久久图片 | 天天色图| 久热久|