gpt4 book ai didi

python-3.x - 使用回归线在 Altair 中可视化多列的快速方法

转载 作者:行者123 更新时间:2023-12-04 04:12:42 25 4
gpt4 key购买 nike

所以我在 Altair 中快速可视化多列的方法是使用 repeat .这个方法没问题,直到我想使用 transform_regression 添加回归线或文本使用 mark_text因为它不允许我在使用 repeat 时添加图层.

Pandas 使用 df.corr 可以很容易地获得完整 df 的相关性。有一些快速的方法来快速可视化所有/多列会很棒。

示例代码:

import altair as alt
from vega_datasets import data
from altair.expr import datum

iris = data.iris()

chart = alt.Chart(iris).mark_circle().encode(
alt.X(alt.repeat("column"), type='quantitative'),
alt.Y(alt.repeat("row"), type='quantitative'),
color='species:N'
).properties(
width=100,
height=100
).repeat(
row=['sepalLength', 'sepalWidth', 'petalLength','petalWidth'],
column=['petalWidth','petalLength', 'sepalWidth', 'sepalLength']
)

chart

这是代码 enter image description here 的输出

所以我的问题是:有没有办法快速添加任何附加功能,例如使用 repeat 时的回归线?如果不是,快速可视化多列数据的最佳途径是什么,一次性添加额外内容?

最佳答案

代替重复,您可以使用两个折叠变换和一个行/列构面,然后可以直接应用回归变换。下面是一个例子:

import altair as alt
import pandas as pd

base = alt.Chart(iris).transform_fold(
['sepalLength', 'sepalWidth', 'petalLength','petalWidth'],
as_=['key_x', 'value_x']
).transform_fold(
['sepalLength', 'sepalWidth', 'petalLength','petalWidth'],
as_=['key_y', 'value_y']
).encode(
x=alt.X('value_x:Q', title=None),
y=alt.Y('value_y:Q', title=None),
).properties(
width=100,
height=100
)

alt.layer(
base.mark_circle().encode(color='species:N'),
base.transform_regression(
'value_x', 'value_y',
groupby=['key_x', 'key_y', 'species']
).mark_line(
color='black'
).encode(
detail='species:N'
)
).facet(
column=alt.Column('key_x:N', title=None),
row=alt.Row('key_y:N', sort='descending')
).resolve_scale(
x='independent',
y='independent'
)

enter image description here

关于python-3.x - 使用回归线在 Altair 中可视化多列的快速方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61447422/

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