У меня есть лист Excel, подобный следующему:
A B C D
3 1 2 8
4 2 2 8
5 3 2 9
2 9
6 4 2 7
Теперь я пытаюсь нанести «B» на «C» и пометить точки данных записями «A».Он должен показывать мне точки 1/2, 2/2, 3/2 и 4/2 с соответствующими метками.
import matplotlib.pyplot as plt
import pandas as pd
import os
df = pd.read_excel(os.path.join(os.path.dirname(__file__), "./Datenbank/Test.xlsx"))
fig, ax = plt.subplots()
df.plot('B', 'C', kind='scatter', ax=ax)
df[['B','C','A']].apply(lambda x: ax.text(*x),axis=1);
plt.show()
К сожалению, я получаю это:

с ошибкой:
ValueError: posx and posy should be finite values
Как вы можете видеть, она не помечала последнюю точку данных.Я знаю, что это из-за пустых ячеек на листе, но я не могу избежать их.На этих позициях просто нет данных измерений.Я уже искал решение здесь: Аннотируйте точки данных при построении из Pandas DataFrame , но это не решило мою проблему.
Итак, есть ли способ пометить последнюю точку данных?
PS: лист Excel является лишь примером.Так что имейте в виду, что в действительности на разных позициях много пустых ячеек.