簡體   English   中英

使用 altair 將身份線添加到散點圖

[英]Adding the line of identity to a scatter plot using altair

我創建了一個基本的散點圖來使用 altair 比較兩個變量。 我希望這些變量具有很強的相關性,並且這些點最終應該位於或接近於同一直線。

如何將身份線添加到情節中?

我希望它是一條類似於由mark_rule創建的mark_rule ,但對角線而不是垂直或水平延伸。

這是我得到的:

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

norm = np.random.multivariate_normal([0, 0], [[2, 1.8],[1.8, 2]], 100)

df = pd.DataFrame(norm, columns=['var1', 'var2'])

chart = alt.Chart(df, width=500, height=500).mark_circle(size=100).encode(
    alt.X('var1'),
    alt.Y('var2'),
).interactive()

line = alt.Chart(
    pd.DataFrame({'var1': [-4, 4], 'var2': [-4, 4]})).mark_line().encode(
            alt.X('var1'),
            alt.Y('var2'),
).interactive()

chart + line

此示例的問題在於,縮放時線條不會永遠延伸(如規則標記),並且繪圖會自動縮放到線條末端,而不僅僅是點。

這並不完美,但您可以延長線並設置比例域。

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

norm = np.random.multivariate_normal([0, 0], [[2, 1.8],[1.8, 2]], 100)

df = pd.DataFrame(norm, columns=['var1', 'var2'])

chart = alt.Chart(df, width=500, height=500).mark_circle(size=100).encode(
    alt.X('var1', scale=alt.Scale(domain=[-4,4])),
    alt.Y('var2', scale=alt.Scale(domain=[-4,4])),
).interactive()

line = alt.Chart(
    pd.DataFrame({'var1': [-100, 100], 'var2': [-100, 100]})).mark_line().encode(
            alt.X('var1'),
            alt.Y('var2'),
).interactive()

chart + line

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM