簡體   English   中英

當 x 軸為日期且 y 軸為日志時,將文本添加到 Seaborn 圖表

[英]Adding Text to Seaborn Graph when x-axis is dates and y-axis is logs

我有一個關於股票的線圖,我的 x 軸包含日期,y 軸包含一些日志值。

這是我的數據的一小部分:

     DATE          STOCK CODE  HIGHEST VALUE
0    2019-01-02    GENTS.E     1.80
882  2019-01-02    IHLGM.E     1.09
1197 2019-01-02    ISGYO.E     4.60
126  2019-01-02    ALBRK.E     3.80
504  2019-01-02    DOHOL.E     2.87

這是我的 seaborn 代碼:

sns.set(font_scale=1.5)
sns.set_theme(style="ticks", palette="bright")
ax= sns.relplot(
    data=part1_19H, 
    x="DATE", y="HIGHEST PRICE", hue="STOCK CODE", 
    height=10, aspect=2, 
    kind="line",
    legend=True,
    marker="o"
).set(title="First 20 Stocks of Q1 2019",  ylabel="Highest Price", xlabel=None)
plt.yscale('log')
plt.xticks(rotation=45)

這是我的圖表:

在此處輸入圖像描述

無論如何,當我每次嘗試使用 plt.text() function 添加一些文本時,我都會因為協調問題而出錯。

像:

plt.text("2019-03-29", 4.10, 'Some text')

Failed to convert value(s) to axis units: '2019-03-29'

另外,可能我也會在 y 軸上出錯,因為在我的圖表中,y 軸是日志樣式,但我試圖與非日志樣式協調。

那么,如何使用日期和非日志坐標來協調圖形上的文本?

我想通了。

我們需要將日期作為日期時間,因為 seaborn 就是這樣;

from datetime import datetime as datetime

plt.text(datetime(2019,3,29), 1.2,"some text")

這將采用我們的日期時間,如 2019-03-29,它會起作用。 另外,當我們給 z 的原始值 seaborn 定位到對數坐標時,z 坐標就沒有問題了。

暫無
暫無

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

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