【问题标题】:Plot bar chart with multiple columns plotly绘制具有多列的条形图
【发布时间】:2022-07-07 01:06:00
【问题描述】:

我有一个这样的数据集:

Female    Male    Single    Married    Cohabit    OthSing
  1        0        1          0          0          0
  0        1        0          1          0          0
  0        1        0          0          0          1
  1        0        0          0          1          0
  0        1        1          0          0          0
  1        0        0          0          1          0

基本上,如果你有 1 代表女性,那么男性将是 0,反之亦然。婚姻状况也是如此,如果男/女已婚,则不能单身或同居。我想使用包含 4 个条形(婚姻状况)的 plotly 绘制条形图,我不关心它是男性还是女性,我只想知道有多少人是单身、已婚、同居或其他类型单的。我的问题是每个栏都来自不同的列,我还没有找到方法来做到这一点。下面的输出示例:

如果可以这样做,有人能给我一个想法吗?

【问题讨论】:

  • 到目前为止您尝试过什么?这是一个简单的案例,已经在 Plotly 文档和示例中介绍过。
  • @alec_djinn 我尝试了一个条形图组,其中 X 是女性,Y 是 ['Single'、'Married'、'OthSing'、'Cohabit'] 的列表,但随后数据拆分女性分为 0 和 1,我不想这样。

标签: python pandas plotly


【解决方案1】:

也许对于将来需要它的人,我设法通过创建一个包含我需要的列的索引的列表和另一个包含每列的计数的列表来绘制它,然后绘制列表,如下所示:

index_mar_status = df_data.columns[2:6].values

count_mar_status = [df_data[mar_status].value_counts()[1] for mar_status in index_mar_status]

bar = px.bar(x=index_mar_status,
             y=count_mar_status,
             color=count_mar_status,
             color_continuous_scale=px.colors.sequential.Pinkyl,
             title='Count of Marital Status')

bar.update_layout(yaxis_title='Number of People',
                  coloraxis_showscale=False)
bar.show()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-09
    • 2018-03-18
    • 2021-11-03
    • 1970-01-01
    • 2017-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多