注释不显示(带有日期时间数据的matplotlib图形)

2024-04-26 11:12:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图使this与我的代码一起工作,其中每个数据点都得到注释。你知道吗

import datetime as dt
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import numpy as np

a = np.array([(1.5376248e+09, 48, 5682.47), (1.5376932e+09, 57, 5767.98), (1.5377112e+09, 57, 5767.98)])

time_test = a[:,0] # raw time data in unix time
x = a[:,1] # x coordinate
z = a[:,2] # text to annotate

date_1 = np.vectorize(dt.datetime.fromtimestamp)(time_test) # makes a datetimeobject from unix timestamp
date = np.vectorize(mdates.date2num)(date_1) # makes matplotlib date from datetime

myFmt = mdates.DateFormatter('%d-%m-%Y')
plt.gca().xaxis.set_major_formatter(myFmt)

for rsi, date_1, close in zip(x, time_test, z):        
    plt.annotate(close, xy = (date_1, rsi), xytext=(2, 2))

plt.ylim(40,70)
plt.xticks(rotation = 45)
plt.plot(date, x)
plt.show()

我试着尽可能地复制循环,现在它至少没有错误,但是注释也没有显示出来。你知道吗

感谢所有的想法。干杯


Tags: intestimportdatetimedatetimematplotlibas
1条回答
网友
1楼 · 发布于 2024-04-26 11:12:48
The updated code looks like this now:

a = np.array([(1.5376248e+09, 48, 5682.47), (1.5376932e+09, 57, 5767.98), (1.5377112e+09, 48, 56950.98)])

time_test = a[:,0] # raw time data in unix time
x = a[:,1] # x coordinate
z = a[:,2] # text to annotate

date_1 = np.vectorize(dt.datetime.fromtimestamp)(time_test) # makes a datetimeobject from unix timestamp
date = np.vectorize(mdates.date2num)(date_1) # makes matplotlib date from datetime

myFmt = mdates.DateFormatter('%d-%m-%Y')
plt.gca().xaxis.set_major_formatter(myFmt)

for rsi, date_2, close in zip(x, date, z):
     plt.annotate(close, xy = (date_2, rsi))

plt.ylim(40,65)
plt.xticks(rotation = 45)
plt.plot(date, x)
plt.show()

相关问题 更多 >