【问题标题】:How do I implement the FacetGrid function in my Python codes?如何在我的 Python 代码中实现 FacetGrid 函数?
【发布时间】:2017-03-19 09:54:16
【问题描述】:

我是 Python 新手,下面是我的 Jupyter Notebook 中一些 Python 代码的摘录:

import pandas as pd
import matplotlib.pyplot as plt

import numpy as np
import seaborn as sns
sns.set(style="darkgrid")
FacetGrid.set(yticks=np.arange(0, 500, 1000, 1500, 2000, 2500, 3000, 3500, 4000, 4500, 5000, 5500, 6000, 6500, 7000, 7500, 8000))
import numpy as np
%matplotlib inline

plt.rcParams['figure.figsize']=(20,20)

当我运行这些代码时,我收到以下错误: NameError: 名称 'FacetGrid' 未定义

我进行了搜索,发现以下内容: Change number of x-axis ticks in seaborn plots

但是,我似乎无法在我的代码中正确实现它。我需要 FacetGrid 函数来手动指定 seaborn stripplot 的 y 轴上的刻度值。

我该如何纠正这个问题?

【问题讨论】:

  • 您为什么认为FacetGrid 在范围内?我没有看到它是从您发布的代码中的任何内容中导入的。 (例如,没有from whatever import FacetGrid。)
  • 好吧,我明白你的意思了,深入研究,Facetgrid 需要 4 个参数,因此,我关于设置刻度线的代码肯定不在正确的位置。基本上,我希望我的 y 轴显示这些值,而不是 Seaborn stripplot 的默认值。关于如何进行的任何想法或指示。

标签: python plot graph seaborn facet-grid


【解决方案1】:

重点是您需要使用 FacetGrid 的实例而不是类本身。此外,您需要正确定义刻度标签的 numpy 数组。

这是一个基于您的代码的示例:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
sns.set(style="darkgrid")

data = pd.DataFrame({})
g = sns.FacetGrid(data, size=20)

yticks = np.arange(0,8500,500)
g.set(yticks=yticks)

plt.show()

【讨论】:

  • 非常感谢!它可以工作,但我丢失了图形大小的参数:(plt.rcParams['figure.figsize']=(20,20) 尽管 Python 没有抛出任何错误消息,但似乎有一些东西覆盖了该行。
  • 由于一些晦涩但有意的原因,FacetGrid 不遵守 rcParams 或 .set 函数设置的图形大小。 @mwaskom 在related issue 中详细说明了这些晦涩的原因。相反,图形大小应由 FacetGrid 的 size 参数确定。请参阅this answer 了解它的使用方式。我相应地编辑了答案。
猜你喜欢
  • 2021-12-11
  • 2021-05-20
  • 2018-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多