牵牛星:用连续标度着色的散点图上的回归

2024-05-12 19:51:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图使用Altair来显示散点图,其中标记颜色由非分类特征(连续)给出,并在其上添加回归线。不过,我对牛郎星还是很陌生

首先,here's a sample of the data I'm inputting into Altair

So far I can create either the colouring without a regression:

问题是回归线没有显示出来。这是通过以下代码实现的:

chart = alt.Chart(df).mark_circle(size=60).encode(
   x='Lambda',
   y='ACR',
   color='Consensus',
   tooltip=["Tolerance Prevalence", "Consensus", "ACR", "Lambda"]
)

chart.interactive() + chart.transform_regression(
   'Lambda', 'ACR', method="quad"
).mark_line(color="red")

Or a regression without the desired colour scale. 我可以通过删除第一条指令中的“color='consenses'”行来实现这一点

我尝试过改变回归方法,甚至不同的特征组合都没有用。 是否有任何参数或Altair函数可用于轻松修复此问题

提前谢谢

编辑1

完整代码:

import altair as alt
import pandas as pd
import numpy as np

df = read_csv("processed.txt")

chart = alt.Chart(df).mark_circle(size=60).encode(
    x='Lambda',
    y='ACR',
    color='Consensus',
    tooltip=["Tolerance Prevalence", "Consensus", "ACR", "Lambda"]
)

chart.interactive() + chart.transform_regression(
    'Lambda', 'ACR', method="quad").mark_line(color="red")

chart

Full Data (processed.txt)


Tags: thelambdaimportdfaschart特征alt
1条回答
网友
1楼 · 发布于 2024-05-12 19:51:57

您可以定义一个不带颜色的基础图表,然后从中构建散点和回归线:

import altair as alt
import pandas as pd
import numpy as np


df = pd.read_csv("Downloads/processed.txt", sep=' ')

base = alt.Chart(df).mark_circle(size=60).encode(
    x='Lambda',
    y='ACR',
)

scatter = base.encode(
    color='Consensus',
    tooltip=["Tolerance Prevalence", "Consensus", "ACR", "Lambda"]
)

line = base.mark_line(color="red").transform_regression(
    'Lambda', 'ACR', method="quad")

scatter + line

enter image description here

相关问题 更多 >