如何在同一张图表中将两个不同系列的柱状图并排放置?
How can I put two bars of distinct series next to each other in the same chart?
假设我们的数据框有两个整数系列:estimated_value
和 sell_price
。
我想在同一个条形图中有两个相邻的条形。
左边显示average(estimated_value)
,右边显示average(sell_price)
。
他们应该共享同一个轴。
我认为这将是一个非常常见的用例,但我在文档中找不到任何示例。所有示例都使用 'colour' 或 'column' 对条形进行分组。
- 我试过使用 y2,但它似乎只是简单地消除了与 y1 的差异,而不是添加第二个系列。
- 然后我尝试使用 layeredChart,但这会将两个条形图放在彼此之上而不是彼此相邻。
听起来你有宽格式数据而不是长格式数据。 Long-form vs. Wide-form data.
中讨论了差异
将数据转换为长格式后,您可以使用标准编码来实现此结果。下面是它的外观,使用一些示例数据:
import altair as alt
import pandas as pd
data = pd.DataFrame({
'estimated_value': [500, 600, 700, 800, 900],
'sell_price': [550, 610, 690, 810, 950]
})
alt.Chart(data).transform_fold(
['estimated_value', 'sell_price'], as_=['category', 'price']
).mark_bar().encode(
y='category:N',
x='average(price):Q',
)
假设我们的数据框有两个整数系列:estimated_value
和 sell_price
。
我想在同一个条形图中有两个相邻的条形。
左边显示average(estimated_value)
,右边显示average(sell_price)
。
他们应该共享同一个轴。
我认为这将是一个非常常见的用例,但我在文档中找不到任何示例。所有示例都使用 'colour' 或 'column' 对条形进行分组。
- 我试过使用 y2,但它似乎只是简单地消除了与 y1 的差异,而不是添加第二个系列。
- 然后我尝试使用 layeredChart,但这会将两个条形图放在彼此之上而不是彼此相邻。
听起来你有宽格式数据而不是长格式数据。 Long-form vs. Wide-form data.
中讨论了差异将数据转换为长格式后,您可以使用标准编码来实现此结果。下面是它的外观,使用一些示例数据:
import altair as alt
import pandas as pd
data = pd.DataFrame({
'estimated_value': [500, 600, 700, 800, 900],
'sell_price': [550, 610, 690, 810, 950]
})
alt.Chart(data).transform_fold(
['estimated_value', 'sell_price'], as_=['category', 'price']
).mark_bar().encode(
y='category:N',
x='average(price):Q',
)