簡體   English   中英

Seaborn PairGrid:顯示每個子圖的軸標簽

[英]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循環和ij索引。 它可能有一個更清晰的矢量化方式來做到這一點,但至少它的工作原理。

使用來自seaborniris樣本數據集:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM