python - 如何显示多个字段的分组条形图?(牵牛星)
问题描述
我有以下数据集
我想在某种图表中显示这一点:参数应该位于 X 轴上:确认、死亡、恢复。必须为每个 region_name 定义它们。Y 轴应该是这些值的总和。我在官方文档中读到了melt()方法,但是我不太明白如何使用它。
我需要得到这样的东西,只有以下形式。
解决方案
你有宽格式数据;您需要将其转换为长格式数据。您可以使用melt()
或类似方法在 pandas 中执行此操作,也可以使用 Altair 的transform_fold
. 您可以在https://altair-viz.github.io/user_guide/data.html#long-form-vs-wide-form-data中阅读更多相关信息
对于您的数据,它可能看起来像这样:
import pandas as pd
import altair as alt
data = pd.read_csv('data_from_screenshot.csv')
alt.Chart(data).transform_fold(
["confirmed", "deaths", "recovered"],
as_=["field", "value"]
).mark_bar().encode(
x="field:N",
y="sum(value):Q",
column="region_name:N"
)
推荐阅读
- android - Flutter 无法运行
- c# - “无法将 lambda 表达式转换为类型 'Type',因为它不是委托类型”不断显示
- kotlin - 如果没有作为函数参数传递,则使用接口的默认实现
- python - Python 语句 x=x+1 是如何实现的?
- jquery - JQuery DateTimePicker 不使用不显眼的验证进行验证
- python - 在窗口的顶部中心显示一个 QLabel
- java - 如何将变量的值添加到 Java 中的数组中?
- node.js - puppeteer 触发 ajax 并获取响应数据
- javascript - Node js-无法定义块常量
- pdf - 我可以将自定义 ID 安全地存储在 PDF 表单字段中的哪些属性中?