【问题标题】:How to plot positive and Negative Bar chart如何绘制正负条形图
【发布时间】:2022-02-23 09:07:29
【问题描述】:

我在下面有一个名为 pct 的数据集

我想使用 ggplot2 或 plotly 包制作正负条形图。

给定下表中的数据集

Month pct
Jan-20 45%
Feb-20 34%
Mar-20 -15%
Apr-20 -11%
May-20 17%
Jun-20 15%
Jul-20 45%
Aug-20 17%
Sep-20 -11%
Oct-20 -21%
Nov-20 74%
Dec-20 12%

我想要这样的东西

【问题讨论】:

    标签: r ggplot2 dplyr plotly bar-chart


    【解决方案1】:
    • 正值跟踪和负值跟踪
    • 对条形上方/下方的标签使用 textformat

    在我看到这是 R 之前构建的。构建 plotly 图形的方法是相同的。

    import pandas as pd
    import io
    import plotly.express as px
    
    df = pd.read_csv(
        io.StringIO(
            """Month,pct
    Jan-20,45%
    Feb-20,34%
    Mar-20,-15%
    Apr-20,-11%
    May-20,17%
    Jun-20,15%
    Jul-20,45%
    Aug-20,17%
    Sep-20,-11%
    Oct-20,-21%
    Nov-20,74%
    Dec-20,12%"""
        )
    )
    
    df["pct"] = pd.to_numeric(df["pct"].str[:-1]) / 100
    df["Month"] = pd.to_datetime("01-" + df["Month"])
    
    px.bar(
        df,
        x="Month",
        y="pct",
        color=df["pct"] > 0,
        color_discrete_map={True: "green", False: "red"},
        text_auto=True
    ).update_layout(yaxis={"tickformat": "3.0%"},  xaxis_dtick="M1", showlegend=False)
    

    【讨论】:

    • 谢谢,但为什么每月没有完全显示,例如 Jan 跳过了 2 月,然后 3 月跳过了 4 月,那么可能有办法完全显示整个月
    • 更新答案,只需在 xaxis 上使用 dtick
    • 这是用python写的吗?我想要用R写的答案
    • 是的 - 因此评论 在我看到这是 R 之前构建。构建情节图的方法是相同的我目前没有工作 R 环境,情节概念是完全可跨 python、R 和 javascript 传输
    猜你喜欢
    • 1970-01-01
    • 2019-05-28
    • 1970-01-01
    • 1970-01-01
    • 2021-11-12
    • 2021-09-26
    • 2020-01-18
    • 2016-08-14
    • 1970-01-01
    相关资源
    最近更新 更多