[英]How to show a vertical line in an Altair chart using mark_rule()
我正在使用 Python 和 Altair 創建直方圖。 我可以包含一條垂直線作為平均值,這是可行的,但第一個四分位數(第 25 個分位數)的代碼不會產生一條垂直線。
我認為這是基於我使用 numpy 函數來計算第一個四分位數。 但我不確定如何以不同的方式做到這一點。
我錯過了什么? 謝謝!
import pandas as pd
import numpy as np
import altair as alt
df = pd.util.testing.makeDataFrame()
chart = (
alt.Chart(df)
.mark_bar()
.encode(alt.X("A:Q", bin = True), y = "count()")
.properties(width = 800, height = 300)
)
# create mean rule ***WORKS***
mean = (
alt.Chart(df)
.mark_rule()
.encode(
x = "mean(A):Q"
)
)
chart + mean
# create Q1 rule *** vertical line is NOT showing***
Q1 = (
alt.Chart(df)
.mark_rule()
.encode(
x = "np.quantile(A, 0.25):Q"
)
)
chart + Q1
有什么建議么? 謝謝!
Altair 編碼字符串不會解析任意的 Python 代碼,因此調用 numpy 函數將不起作用。
對於 Altair 中的分位數,您可以使用quantile transform 。 以下是您的數據示例:
Q1 = (
alt.Chart(df)
.transform_quantile('A', probs=[0.25], as_=['prob', 'value'])
.mark_rule()
.encode(
x = "value:Q"
)
)
chart + Q1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.