python - Seaborn:并排绘制 2 个配对图
问题描述
我正在尝试制作一个并排产生两个pairplots的函数。我已经让它一次生产1个。
import seaborn as sns
data = sns.load_dataset("iris")
def pairplot(col,hue_var):
sns.set(style="ticks")
cols_to_look_at = col + [hue_var]
sns.pairplot(data[cols_to_look_at], hue=hue_var)
col_names1 = ['sepal_length', 'sepal_width']
col_names2 = ['petal_length', 'petal_width']
pairplot(col_names1,'species')
pairplot(col_names2,'species')
感谢任何帮助
解决方案
事实上,这不是一件小事。
pairplot
ax
由于其在 seaborn 的“人物级别”的性质,没有参数使其变得简单。
有一些技巧: How to plot multiple Seaborn Jointplot in Subplot
“干净”包括将绘图保存为图像以将它们带回放置它们:https ://stackoverflow.com/a/61330067/10372616
在你的情节中使用它:
import matplotlib.image as mpimg
import matplotlib.pyplot as plt
import seaborn as sns
data = sns.load_dataset("iris")
def pairplot(col,hue_var):
sns.set(style="ticks")
cols_to_look_at = col + [hue_var]
return sns.pairplot(data[cols_to_look_at], hue=hue_var) # !!! I've placed a return
col_names1 = ['sepal_length', 'sepal_width']
col_names2 = ['petal_length', 'petal_width']
g0 = pairplot(col_names1,'species')
g1 = pairplot(col_names2,'species')
############### 1. SAVE PLOTS IN MEMORY TEMPORALLY
g0.savefig('g0.png', dpi=300)
plt.close(g0.fig)
g1.savefig('g1.png', dpi=300)
plt.close(g1.fig)
############### 2. CREATE YOUR SUBPLOTS FROM TEMPORAL IMAGES
f, axarr = plt.subplots(1, 2, figsize=(20, 20))
axarr[0].imshow(mpimg.imread('g0.png'))
axarr[1].imshow(mpimg.imread('g1.png'))
# turn off x and y axis
[ax.set_axis_off() for ax in axarr.ravel()]
plt.tight_layout()
plt.show()
推荐阅读
- php - 安装 mysqli 扩展后的 Docker php:php7.4-apache boot-loop
- python - iOS camera output rotated 90 degrees left
- python - 保留列表中存在的数据框的行
- python - 烧瓶如何处理同时请求?
- c# - Service Fabric for Linux 中的服务通信
- django-rest-framework - 获取此 ConnectionResetError:[Errno 54] 在 API 中点击 GET 请求时由对等方重置连接
- swift - 如何使用计数器多次调用 dataTask 方法?
- c++ - cpprestsdk 使用反斜杠解析失败
- json - AWS Lambda JSONDecodeError
- uml - StarUML 在方法中显示“in”