我想在Facetgrid的每個繪圖中反轉Y軸。
下面是一個縮減的代碼示例:
import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
df_test = pd. DataFrame({'a':['yes', 'no']*5, 'b': np. arange(10), 'c':np.range(10)*2})
plt.figure()
g = sns.FacetGrid(data=df_test, row='a'/span>)
g.map_dataframe(sns.scatterplot, y='c'/span>, x='b'/span>)
plt.show()
據我所知,在使用matplotlib時,這通常是通過ax.invert_yaxis()完成的,所以我試圖通過g.axes來訪問它,但沒有成功。
我知道我可以手動設定一個ylim=(max_val, min_val),但是,這導致了難看的刻度線間距。
uj5u.com熱心網友回復:
- 通過迭代
g.axes來提取和設定每個軸。
- 在
python 3.8.11,matplotlib 3.4.3,seaborn 0.11.2測驗。
g = sns.FacetGrid(data=df_test, row='a'/span>)
g.map_dataframe(sns.scatterplot, y='c'/span>, x='b'/span>)
for ax in g.axes[0] 。
ax.invert_yaxis()
- 然而,使用
- 使用
.ravel()來平整n x n陣列或軸,其中n > 1
df_test = pd. DataFrame({'a'/span>: ['yes', 'no', 'maybe']*4, 'b': np. arange(12), 'c'/span>:np. arange(12)*2, 'd': np.arrange(12)*3}) g = sns. relplot(data=df_test, col='a'/span>, col_wrap=2, x='b'/span>, y='c'/span>, kind='scatter', height=3) for ax in g.axes.ravel() 。 ax.invert_yaxis()
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/312368.html標籤:
- 使用


