Rik*_*d N 7 python vega-lite altair
我创建了一个基本的散点图来使用 altair 比较两个变量。我希望这些变量具有很强的相关性,并且这些点最终应该位于或接近于同一直线。
如何将身份线添加到情节中?
我希望它是一条类似于由创建的线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
Run Code Online (Sandbox Code Playgroud)
此示例的问题在于,缩放时线条不会永远延伸(如规则标记),并且绘图会自动缩放到线条末端,而不仅仅是点。
它并不完美,但您可以使线条更长并设置比例域。
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
938 次 |
| 最近记录: |