python - 如何模仿 Python 包 Altair 中的 R 库 ggplot 中的 geom_col() 函数?
问题描述
我正在尝试使用 Altair 绘制柱形图,但是 Altair 中没有 mark_column() 方法。如何使用 Altairs mark_bar() 方法模仿 geom_col() 的功能?
解决方案
有两种类型的条形图:
geom_bar()
和geom_col()
。geom_bar()
使条形的高度与每组中的案例数量成正比(或者如果提供了重量美学,则为权重的总和)。如果您希望条形的高度表示数据中的值,请geom_col()
改用。
听起来他们之间的区别不是标记,而是标记代表什么价值。在 Altair 中,标记表示的值是通过编码定义的。
所以 Altair 的版本geom_bar()
可能看起来像这样:
data = pd.DataFrame({
'category': ['A', 'A', 'B', 'B', 'B', 'C']
})
alt.Chart(data).mark_bar().encode(
x='category:N',
y='count():Q'
)
或者,对于geom_bar()
重量美学,
data = pd.DataFrame({
'category': ['A', 'A', 'B', 'B', 'B', 'C'],
'weights': [1, 2, 1, 2, 3, 2]
})
alt.Chart(data).mark_bar().encode(
x='category:N',
y='sum(weights):Q'
)
Altair 的版本geom_col()
可能如下所示:
data = pd.DataFrame({
'category': ['A', 'B', 'C'],
'value': [4.1, 6.3, 2.2]
})
alt.Chart(data).mark_bar().encode(
x='category:N',
y='value:Q'
)
推荐阅读
- java - 在 JButton 事件之后重新格式化 Swing 组件
- php - Mysql如何防止记录在更新中发生变化?
- python - 检查变量类型的问题
- node.js - 邮递员未显示获取请求的输出
- jenkins-pipeline - Jenkins 管道:如何在不触发轮询或跟踪更改的情况下签出存储库?
- codenameone - 我在制作 MapContainer 时收到 java.lang.NoClassDefFoundError: com/codename1/googlemaps/InternalNativeMaps
- python - 在引用另一个模型时使用 Django 的注释函数?
- python-3.x - 推荐系统的不平衡数据集
- angular - ContentChild 无法通过 QueryTemplate 和组件参考工作
- gradle - Gradle Daemon 在“完成作业”步骤中被杀死