【问题标题】:How to set ticks in Seaborn FacetGrid?如何在 Seaborn FacetGrid 中设置刻度?
【发布时间】:2021-08-31 10:41:24
【问题描述】:

我有一个这样的代码,我想在 X 轴上添加刻度,以便我可以更好地看到超过 150 的值对应于什么。我的 X 值范围是 178 到 17639。

bins = np.linspace(df.days_with_cr_line.min(), df.days_with_cr_line.max(), 32)

g = sns.FacetGrid(df, col="loan_status", hue="loan_status", palette=['#8856a7', '#f03b20'], col_wrap=2)
g.map(plt.hist, 'days_with_cr_line', bins=bins, ec="k")

我试过了

g.set_xticks(np.arange(0,18000,500), minor=True)
AttributeError: 'FacetGrid' object has no attribute 'set_xticks'

for axes in g.axes.flat:
    _ = axes.set_xticks(axes.get_xticks(range(0,18000)))

这将删除刻度标签而不添加任何刻度。

【问题讨论】:

    标签: python seaborn facet-grid xticks


    【解决方案1】:

    如果您使用 set 设置 x 轴上的刻度数,然后为它们设置刻度标签,您将获得预期的结果。数据创建得当。

    import pandas as pd
    import numpy as np
    import seaborn as sns
    import matplotlib.pyplot as plt
    
    np.random.seed(20210831)
    df = pd.DataFrame({'days_with_cr_line':np.random.randint(10,1000,size=1000),
                      'loan_status':np.random.choice(['Fully paid','Not fully paid'], size=1000)})
    bins = np.linspace(df.days_with_cr_line.min(), df.days_with_cr_line.max(), 32)
    
    g = sns.FacetGrid(df, col="loan_status", hue="loan_status", palette=['#8856a7', '#f03b20'], col_wrap=2)
    g.map(plt.hist, 'days_with_cr_line', bins=bins, ec="k")
    g.set(xticks=np.arange(0,1050,50))
    g.set_xticklabels(np.arange(0,1050,50), rotation=90)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-09-29
      • 1970-01-01
      • 2019-10-29
      • 1970-01-01
      • 2014-10-02
      • 2021-04-08
      相关资源
      最近更新 更多