[英]Seaborn PairGrid: show axes labels for each subplot
有沒有辦法可以輕松地為Seaborn對圖中的每個子圖添加軸標簽? 這與此問題有關,但我沒有添加刻度標簽,而是添加軸標簽,因為我所擁有的配對圖是9 * 9,我不想每次都向下滾動以檢查列名。
我希望這會很容易
for ax in g.axes.flat:
_ = plt.setp(ax.get_ylabels(), visible=True)
_ = plt.setp(ax.get_xlabels(), visible=True)
首先需要從軸獲取所有標簽(例如ax.xaxis.get_label_text()
)並設置標簽文本( ax.xaxis.set_label_text()
)。
我在這里使用了for循環和i
, j
索引。 它可能有一個更清晰的矢量化方式來做到這一點,但至少它的工作原理。
使用來自seaborn
的iris
樣本數據集:
import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
iris = sns.load_dataset("iris")
g = sns.PairGrid(iris)
g = g.map(plt.scatter)
xlabels,ylabels = [],[]
for ax in g.axes[-1,:]:
xlabel = ax.xaxis.get_label_text()
xlabels.append(xlabel)
for ax in g.axes[:,0]:
ylabel = ax.yaxis.get_label_text()
ylabels.append(ylabel)
for i in range(len(xlabels)):
for j in range(len(ylabels)):
g.axes[j,i].xaxis.set_label_text(xlabels[i])
g.axes[j,i].yaxis.set_label_text(ylabels[j])
plt.show()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.