【问题标题】:How to change the axis scale of a boxplot in seaborn using a dataframe with pandas?如何使用带有熊猫的数据框更改 seaborn 中箱线图的轴比例?
【发布时间】:2021-01-07 07:16:34
【问题描述】:

我为从 100,000 美元到 40,000,000 美元的投资数据创建了一个 seaborn 箱线图,这些数据分布在几年内。该图显示了每年投资金额的箱线图。数据来自数据框中的两个系列,我从 CSV 渲染:投资年份 ('inv_year') 和投资金额 ('inv_amount')。

问题:图形的y轴自动以0.5为增量显示,所以:

0.0, 0.5, 1.0, 1.5, etc. (i.e. in tens of millions)

但我希望轴以 5 为增量,所以:

0, 5, 10, 15, etc. (i.e. in millions)

如何更改坐标轴的比例?

这是我当前的代码:

import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
df = pd.read_excel('investments'))
plt.figure(figsize=(12, 10))
sns.boxplot(x='inv_year', y='inv_amount', data=df)
plt.show()

【问题讨论】:

    标签: pandas matplotlib seaborn boxplot yaxis


    【解决方案1】:

    您可以定义一个具有指定刻度的数组并将其传递给plt.yticks

    plt.yticks(np.arange(min(x), max(x)+1, 5))
    

    如果您想保持限制但只调整刻度:

    increments = 5
    ax = plt.gca()
    start, end = ax.get_ylim()
    ax.yaxis.set_ticks(np.arange(start, end, increments))
    

    【讨论】:

    • 谢谢,运行DOSrun。我在 PyCharm 上尝试了这两种策略(并导入了 numpy 库)。第一个策略返回一个 NameError ,其中“名称'x'未定义”。后者启动 Python,但程序在显示图形之前就卡住了(无限期地在我的扩展坞中弹跳)。我是否在代码中遗漏了一些内容?
    • @shraz 我为您提供了一个通用解决方案,而不是复制/粘贴的内容(因为您没有提供重现问题所需的数据)。您需要将其调整为您自己的代码,如果您先努力理解它,这应该不是问题(例如,x 是您的 y 数据)。如果有任何不清楚的地方,请告诉我。
    • 当然。我确实试图用我的 y 数据替换 x,但由于启动器卡住了,我想知道它是否表明 PyCharm 或我的机器有问题。但一切都好;我会进一步挖掘。
    猜你喜欢
    • 2017-03-20
    • 2016-09-03
    • 2022-01-15
    • 1970-01-01
    • 2020-11-29
    • 2023-03-10
    • 2017-01-10
    • 2017-12-16
    • 2018-09-16
    相关资源
    最近更新 更多