[英]B (billions) instead of G (giga) in python plotly customdata [SI prefix d3]
[英]To show B(Billion) instead of G(Giga) in altair charts python
希望使用 altair 圖表在 python 代碼中用 B(Billion) 替換 G(Giga)。 我對此進行了大量研究,但找不到在 python 中覆蓋 d3 格式的方法。 當前使用以下代碼作為軸格式:
line1=(alt.Chart(df_combined).mark_bar().encode(
x=alt.X('Date:T', axis=alt.Axis(title=None, grid=False, format= '%b-%Y')),
y = alt.Y(
'Current Year:Q',
axis= alt.Axis(
title=None,
titleAngle=0,
titleY=-20,
titleAlign="left",
format='s',
titleColor=COLORS_HEX['SMOKEY_BLUE']),
),
color = alt.value(COLORS_HEX['SMOKEY_BLUE'])
).add_selection(sel_selection).transform_filter(sel_selection)
)
但是,這會生成帶有 SI 通知的軸和工具提示,其中將 10^9 顯示為 G 而不是 B(十億)。 關於這個相關主題的很多主題都表明通過覆蓋 d3 格式函數在 javascript 中實現這一點,但是我如何通過在 python notebook 中調用它來覆蓋這個函數。 獲得有關此主題的一些指示將非常有幫助。
謝謝你。
我不知道有什么方法可以在標准 Altair 顯示機制中從 Python 創建自定義 d3 格式化程序。 您始終可以將圖表導出為 JSON,然后使用vega-embed手動顯示您的圖表以及您希望的任何 Javascript 附加功能。
在 Python 方面,大致完成您想要的一種方法是使用labelExpr
定義自定義標簽表達式。 例如:
import pandas as pd
import altair as alt
df = pd.DataFrame({'x': [1E9, 2E9, 3E9]})
alt.Chart(df).mark_point().encode(
alt.X('x', axis=alt.Axis(tickCount=5, labelExpr='datum.value / 1E9 + "B"'))
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.