繁体   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