【问题标题】:Plotting different lines for different states on the same chart在同一图表上为不同状态绘制不同的线
【发布时间】:2019-04-24 21:08:22
【问题描述】:

我正在尝试为几个州的 ___ 数量创建分布。

我想在同一张图上获取所有状态,用不同的线表示。

以下是我的数据的示例:您有状态('我想要过滤行)、评论数量(x 轴)以及拥有这么多评论的餐厅的频率(y 轴)

State | num_of_reviews | Count_id
alaska        1              400
alaska        2              388
alaska        3              344
...
Wyoming      57              13

每当我尝试在 seaborn 或 matplotlib 中做一个简单的线图时,它只会返回一个凌乱的图形。

有人知道我可以轻松过滤 df['State'] 的一串代码吗?

【问题讨论】:

    标签: python matplotlib seaborn


    【解决方案1】:

    假设您有 50 多个州,我不会在同一个图上绘制每个州的分布,因为它会变得非常混乱且难以阅读。相反,我建议使用FacetGrid(阅读更多关于它的信息here)。

    应该这样做。

    import seaborn as sns
    import matplotlib.pyplot as plt
    g = sns.FacetGrid(df, col="State", col_wrap=5, height=1.5)
    g = g.map(plt.hist, "num_of_reviews")
    

    您可以找到有关如何可视化数据here 的其他可能的解决方案和想法。

    如果这些都不适合您,那么如果您能更好地解释您的问题并提供所需的输出和最小、完整且可验证的示例,这可能会有所帮助。

    【讨论】:

    • 谢谢,一个更合乎逻辑的选择!但是,尝试添加参数 height=1.5 时确实出现错误。这个论点是新论点吗?
    • @KyleMcComb 不,这是设置每个方面的维度的参数之一。来自文档: height :标量,可选的每个方面的高度(以英寸为单位)。另见:方面。 aspect : 标量,可选 每个 facet 的纵横比,因此 aspect * height 给出每个 facet 的宽度,以英寸为单位
    • 没有参数它看起来不错,所以如果我不能让它工作,不用担心。谢谢@gio
    猜你喜欢
    • 1970-01-01
    • 2019-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-11
    • 2021-08-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多