【问题标题】:How to resize a seaborn catplot [duplicate]如何调整seaborn catplot [重复]
【发布时间】:2019-01-20 10:14:48
【问题描述】:

为了调整 Seaborn 图形级别图的大小,我一直遵循这个约定:

fig, ax = plt.subplots(figsize=(10,5))
sns.catplot(x='xdata', y='ydata', data=df, kind='swarm', ax=ax)

这也适用于 catplot,但是它会生成第二个完全空白的图。这是 Seaborn 中的错误(还是我做错了什么)?有没有办法在不获得第二个空白图的情况下正确调整该图的大小(当我说空白图时,我的意思是没有数据的图,只是与第一个图相同的轴标签)?

【问题讨论】:

标签: python seaborn


【解决方案1】:

考虑不调用 subplots 并使用 heightaspect 参数,因为这个 seaborn factorplot solution 显示aspect 是高度的宽度倍数,可能保持尺寸一致:

sns.catplot(x='xdata', y='ydata', data=df, kind='swarm', height=5, aspect=2)

来自help(sns.catplot) 输出:

height : scalar, optional
        Height (in inches) of each facet. See also: ``aspect``.

aspect : scalar, optional
    Aspect ratio of each facet, so that ``aspect * height`` gives the width
    of each facet in inches.

用随机数据演示:

import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

np.random.sample(71318)
df = pd.DataFrame({'xdata': np.random.choice(['pandas', 'r', 'julia', 'sas', 'spss', 'stata'], 100),
                   'ydata': np.random.choice(range(1,6), 100)})

sns.catplot(x='xdata', y='ydata', data=df, kind='swarm', height=5, aspect=2)

plt.show()
plt.clf()
plt.close()

【讨论】:

  • 完美运行,谢谢。整个图书馆的大小都没有标准化,这似乎很奇怪..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-07-11
  • 1970-01-01
  • 2021-09-29
  • 2023-01-17
  • 2020-08-10
  • 2019-11-10
  • 2021-07-28
相关资源
最近更新 更多