Python 3.x 使用回归线可视化牵牛星中多个列的快速方法

Python 3.x 使用回归线可视化牵牛星中多个列的快速方法,python-3.x,pandas,altair,Python 3.x,Pandas,Altair,因此,我在Altair中快速可视化多个列的方法是使用repeat。在我想使用transform\u regression添加回归线或使用mark\u text添加文本之前,此方法是可行的,因为它不允许我在使用repeat时添加层 Pandas使使用df.corr获得完整df的相关性变得非常容易。如果能有一些快速可视化所有/多个列的方法,那就太好了 示例代码: import altair as alt from vega_datasets import data from altair.expr

因此,我在Altair中快速可视化多个列的方法是使用
repeat
。在我想使用
transform\u regression
添加回归线或使用
mark\u 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
下面是代码的输出


所以我的问题是:当使用
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'
)