Python 牵牛星与GGU段的对应物

Python 牵牛星与GGU段的对应物,python,ggplot2,data-visualization,diagram,altair,Python,Ggplot2,Data Visualization,Diagram,Altair,在pythons数据可视化软件包altair中,我被mark_bar卡住了。 mark_bar似乎只能处理至少一个轴上的离散值。 然而,我想要一个类似于ggplot中geom_段的行为,换句话说,可以绘制水平线,指定x开始、x结束和y上的高度,如下所示: 正如你所看到的,这些片段也可以重叠,这就是我想要的。 使用altair,我得到的最接近的结果是使用mark_bar,如下所示: import altair as alt import pandas as pd source = pd.Da

在pythons数据可视化软件包altair中,我被mark_bar卡住了。 mark_bar似乎只能处理至少一个轴上的离散值。 然而,我想要一个类似于ggplot中geom_段的行为,换句话说,可以绘制水平线,指定x开始、x结束和y上的高度,如下所示:

正如你所看到的,这些片段也可以重叠,这就是我想要的。 使用altair,我得到的最接近的结果是使用mark_bar,如下所示:

import altair as alt
import pandas as pd

 source = pd.DataFrame([
{"importance": "1.2", "start": 1, "end": 3},
{"importance": "10", "start": 8, "end": 10},
{"importance": "1", "start": 3, "end": 8}
])

 alt.Chart(source).mark_bar().encode(
x='start',
x2='end',
y='importance'
)
其中:

当我设定 y='重要性:Q'

它没有按预期工作,相反,我得到:


这个问题的一部分,我真的很喜欢altairs的简单性,我非常感谢在这方面的任何帮助。

对于两个轴上的定量编码,默认的条方向是垂直的。可以使用“方向”特性更改此设置,也可以使用“高度”特性调整水平杆的厚度:

import altair as alt
import pandas as pd

source = pd.DataFrame([
  {"importance": "1.2", "start": 1, "end": 3},
  {"importance": "10", "start": 8, "end": 10},
  {"importance": "1", "start": 3, "end": 8}
])

alt.Chart(source).mark_bar(
  orient='horizontal',
  height=20
).encode(
  x='start:Q',
  x2='end:Q',
  y='importance:Q'
)

对于两个轴上的定量编码,默认的条形方向是垂直的。可以使用“方向”特性更改此设置,也可以使用“高度”特性调整水平杆的厚度:

import altair as alt
import pandas as pd

source = pd.DataFrame([
  {"importance": "1.2", "start": 1, "end": 3},
  {"importance": "10", "start": 8, "end": 10},
  {"importance": "1", "start": 3, "end": 8}
])

alt.Chart(source).mark_bar(
  orient='horizontal',
  height=20
).encode(
  x='start:Q',
  x2='end:Q',
  y='importance:Q'
)
我自己发现的:

source = pd.DataFrame([
{"importance": "1.2", "start": 1, "end": 3 ,"i":2.2},
{"importance": "10", "start": 8, "end": 10, "i": 11},
{"importance": "1", "start": 2, "end": 8,"i": 2}
])

alt.Chart(source).mark_bar().encode(
x='start:Q',
x2='end:Q',
y='importance:Q',
y2 ='i:Q'
)
因此,添加一个列就足够了,该列是重要性的副本,再加上一些表示钢筋厚度的偏移量。

我自己发现的:

source = pd.DataFrame([
{"importance": "1.2", "start": 1, "end": 3 ,"i":2.2},
{"importance": "10", "start": 8, "end": 10, "i": 11},
{"importance": "1", "start": 2, "end": 8,"i": 2}
])

alt.Chart(source).mark_bar().encode(
x='start:Q',
x2='end:Q',
y='importance:Q',
y2 ='i:Q'
)

因此,添加一个列就足够了,该列是重要性的副本,再加上一些表示钢筋厚度的偏移量。

谢谢,您比我快,而且您的答案也更好!谢谢你们,你们比我快,你们的回答也更好!