Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将R值(相关性)添加到Altair中的散点图中_Python_Pandas_Numpy_Correlation_Altair - Fatal编程技术网

Python 将R值(相关性)添加到Altair中的散点图中

Python 将R值(相关性)添加到Altair中的散点图中,python,pandas,numpy,correlation,altair,Python,Pandas,Numpy,Correlation,Altair,因此,我正在使用Cars数据集,并希望将R值添加到散点图中。因此,我可以使用此代码生成散点图,使用transform\u regression添加回归线,这非常好 from vega_datasets import data import altair as alt import pandas as pd import numpy as np cars = data.cars() chart = alt.Chart(cars).mark_circle().encode( alt

因此,我正在使用Cars数据集,并希望将R值添加到散点图中。因此,我可以使用此代码生成散点图,使用
transform\u regression
添加回归线,这非常好

from vega_datasets import data
import altair as alt
import pandas as pd
import numpy as np

cars = data.cars()
chart = alt.Chart(cars).mark_circle().encode(
        alt.X('Miles_per_Gallon', scale=alt.Scale(domain=(5,50))),
        y='Weight_in_lbs'
)

chart + chart.transform_regression('Miles_per_Gallon','Weight_in_lbs').mark_line()

这是图表

然后我想得到R值。因此,我可以将pandas与此代码一起使用,因为我不确定如何使用Altair获得R值

corl = cars[['Miles_per_Gallon','Weight_in_lbs']].corr().iloc[0,1]
corl

现在我想知道如何在图表上添加R值作为一种标签

您可以通过添加文本层来完成此操作:

text = alt.Chart({'values':[{}]}).mark_text(
    align="left", baseline="top"
).encode(
    x=alt.value(5),  # pixels from left
    y=alt.value(5),  # pixels from top
    text=alt.value(f"r: {corl:.3f}"),
)

chart + text + chart.transform_regression('Miles_per_Gallon','Weight_in_lbs').mark_line()


在未来版本的Altair中,图表中的空数据将不再需要。

感谢您的帮助。是的,df解决方案不是最直观的。我期待您的数据解决方案。