使用 Altair 增加条形图中的条宽
Increasing bar width in bar chart using Altair
我有以下数据框,想使用 Python 中的 altair
库来绘制我的条形图。但是,我不知道如何扩展每个条的宽度(与 matplotlib
中的 width=0.5
参数相同)。
import pandas as pd
from altair import *
ls = [[ 1, 734], [ 2, 1705], [ 3, 2309],
[ 4, 2404], [ 5, 2022], [ 6, 1538],
[ 7, 1095], [ 8, 770], [ 9, 485],
[ 10, 312], [ 11, 237], [ 12, 153],
[ 13, 103], [ 14, 69], [ 15, 47],
[ 16, 39], [ 17, 43], [ 18, 28],
[ 19, 18]]
df = pd.DataFrame(ls, columns=['n_authors', 'n_posters'])
这里是使用altair
的绘图函数
bar_chart = Chart(df).mark_bar().encode(
x=X('n_authors', title='Number of Authors in a Poster'),
y=Y('n_posters', title='Number of Posters'),
).configure_facet_cell(
strokeWidth=1.0,
height=200,
width=300
)
bar_chart.display()
脚本中的情节如下所示:
您需要使用 barSize
参数。 Mark Configuration.
在此处查看更多信息
解决方案
bar_chart = Chart(df).mark_bar(barSize=20).encode(
x=X('n_authors', title='Number of Authors in a Poster'),
y=Y('n_posters', title='Number of Posters'),
).configure_facet_cell(
strokeWidth=1.0,
height=200,
width=300
)
bar_chart.display()
输出
@Nipun 的回答已经失效了。经过一些试验,我可以使用 size
而不是 barSize
获得所需的结果。 (我只在 Jupyter Lab 中测试过。)
from pandas import *
from altair import *
ls = [[ 1, 734], [ 2, 1705], [ 3, 2309],
[ 4, 2404], [ 5, 2022], [ 6, 1538],
[ 7, 1095], [ 8, 770], [ 9, 485],]
df = DataFrame(ls, columns=['X', 'Y'])
Chart(df).mark_bar(size=20).encode(x='X', y='Y')
我有以下数据框,想使用 Python 中的 altair
库来绘制我的条形图。但是,我不知道如何扩展每个条的宽度(与 matplotlib
中的 width=0.5
参数相同)。
import pandas as pd
from altair import *
ls = [[ 1, 734], [ 2, 1705], [ 3, 2309],
[ 4, 2404], [ 5, 2022], [ 6, 1538],
[ 7, 1095], [ 8, 770], [ 9, 485],
[ 10, 312], [ 11, 237], [ 12, 153],
[ 13, 103], [ 14, 69], [ 15, 47],
[ 16, 39], [ 17, 43], [ 18, 28],
[ 19, 18]]
df = pd.DataFrame(ls, columns=['n_authors', 'n_posters'])
这里是使用altair
bar_chart = Chart(df).mark_bar().encode(
x=X('n_authors', title='Number of Authors in a Poster'),
y=Y('n_posters', title='Number of Posters'),
).configure_facet_cell(
strokeWidth=1.0,
height=200,
width=300
)
bar_chart.display()
脚本中的情节如下所示:
您需要使用 barSize
参数。 Mark Configuration.
解决方案
bar_chart = Chart(df).mark_bar(barSize=20).encode(
x=X('n_authors', title='Number of Authors in a Poster'),
y=Y('n_posters', title='Number of Posters'),
).configure_facet_cell(
strokeWidth=1.0,
height=200,
width=300
)
bar_chart.display()
输出
@Nipun 的回答已经失效了。经过一些试验,我可以使用 size
而不是 barSize
获得所需的结果。 (我只在 Jupyter Lab 中测试过。)
from pandas import *
from altair import *
ls = [[ 1, 734], [ 2, 1705], [ 3, 2309],
[ 4, 2404], [ 5, 2022], [ 6, 1538],
[ 7, 1095], [ 8, 770], [ 9, 485],]
df = DataFrame(ls, columns=['X', 'Y'])
Chart(df).mark_bar(size=20).encode(x='X', y='Y')