如何调整 altair 中的刻度范围?
How to adjust scale ranges in altair?
在使用 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 被超级压缩,我不明白为什么?
对于上下文,我正在尝试绘制蛋白质表达水平的连续值。这 8 个图是针对已暴露于不同条件的不同 类 小鼠。如果有帮助,可在 link 获取数据: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),
)
在使用 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 被超级压缩,我不明白为什么?
对于上下文,我正在尝试绘制蛋白质表达水平的连续值。这 8 个图是针对已暴露于不同条件的不同 类 小鼠。如果有帮助,可在 link 获取数据: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),
)