![](/img/trans.png)
[英]Hourly heatmap graph using Python’s ggplot2 implementation ‘plotnine’?
[英]Add text to figure using python's plotnine
我想為 plotnine 中的一行添加一個標簽。 使用 geom_text 時出現以下錯誤:
'NoneType' object has no attribute 'copy'
示例代碼如下:
df = pd.DataFrame({
'date':pd.date_range(start='1/1/1996', periods=4*25, freq='Q'),
'small': pd.Series([0.035]).repeat(4*25) ,
'large': pd.Series([0.09]).repeat(4*25),
})
fig1 = (ggplot()
+ geom_step(df, aes(x='date', y='small'))
+ geom_step(df, aes(x='date', y='large'))
+ scale_x_datetime(labels=date_format('%Y'))
+ scale_y_continuous(labels=lambda l: ["%d%%" % (v * 100) for v in l])
+ labs(x=None, y=None)
+ geom_text(aes(x=pd.Timestamp('2000-01-01'), y = 0.0275, label = 'small'))
)
print(fig1)
編輯:
下面 has2k1 的回答解決了錯誤,但我得到:
我想要這個:(來自R)
代碼:
ggplot() +
geom_step(data=df, aes(x=date, y=small), color='#117DCF', size=0.75) +
geom_step(data=df, aes(x=date, y=large), color='#FF7605', size=0.75) +
scale_y_continuous(labels = scales::percent, expand = expand_scale(), limits = c(0,0.125)) +
labs(x=NULL, y=NULL) +
geom_text(aes(x = as.Date('1996-01-07'), y = 0.0275, label = 'small'), color = '#117DCF', size=5)
https://plotnine.readthedocs.io/en/stable/index.html之外的任何文檔? 我已經閱讀了 geom_text 那里的,但仍然無法產生我需要的......
geom_text
沒有數據geom_text
。 如果要打印文本,請將其放在引號中,即 '"small"' 或將標簽映射放在aes()
之外,但使用annotate
更有意義。
(ggplot(df)
...
# + geom_text(aes(x=pd.Timestamp('2000-01-01'), y = 0.0275, label = '"small"'))
# + geom_text(aes(x=pd.Timestamp('2000-01-01'), y = 0.0275), label = 'small')
+ annotate('text', x=pd.Timestamp('2000-01-01'), y = 0.0275, label='small')
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.