gpt4 book ai didi

python - 如何在 Altair 中调整比例范围?

转载 作者:行者123 更新时间:2023-12-04 16:40:09 34 4
gpt4 key购买 nike

当使用 altair 制作一组像这样的图时,我无法将所有轴都设置为相同的比例:

class_list = ['c-CS-m','c-CS-s','c-SC-m','c-SC-s','t-CS-m','t-CS-s','t-SC-m','t-SC-s']
list_of_plots = []

for class_name in class_list:
list_of_plots.append(alt.Chart(data[data['class'] == class_name]).mark_bar().encode(
x = alt.X('DYRK1A', bin = True, scale=alt.Scale()),
y = 'count()').resolve_scale(
y='independent'
))

list_of_plots[0] & list_of_plots[1] | list_of_plots[2] & list_of_plots[3] | list_of_plots[4] & list_of_plots[5] | list_of_plots[6] & list_of_plots[7]


我想让 x 轴从 0.0 运行到 1.4,y 轴从 0 运行到 120,这样我制作的所有八个图都在相同的比例上!我尝试在当前空的 Scale() 中使用域调用,但它似乎导致 x 轴数据从 0.0 到 0.3 的可视化被 super 压扁,我不明白为什么?

对于上下文,我试图绘制蛋白质表达水平的连续值。这 8 个图针对暴露于不同条件的不同类别的小鼠。如果有帮助,可以在此链接中获取数据: https://archive.ics.uci.edu/ml/datasets/Mice+Protein+Expression

如果我需要提供更多信息以便您帮助我,请告诉我!

最佳答案

首先,看起来您正在尝试创建一个包装的构面图表。与其通过连接手动执行此操作,不如使用 wrapped facet encoding .

其次,当您指定 resolve_scale(y='independent') 时,您指定子图表之间的 y 尺度不应匹配。如果您希望共享所有比例,则可以使用 resolve_scale(y='shared') ,或者等效地将其省略,因为它是默认值。

要指定明确的轴域,请使用 alt.Scale(domain=[min, max]) .放在一起,它可能看起来像这样:

alt.Chart(data).mark_bar().encode(
x = alt.X('DYRK1A', bin = True, scale=alt.Scale(domain=[0, 1.4])),
y = alt.Y('count()', scale=alt.Scale(domain=[0, 120]),
facet = alt.Facet('class:N', columns=4),
)

关于python - 如何在 Altair 中调整比例范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62281179/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com