Python 如何在绘图上注释/显示y值

Python 如何在绘图上注释/显示y值,python,pandas,matplotlib,Python,Pandas,Matplotlib,如何在matlotlib图形上显示数据(y轴值)? 我发现这是相关的,我尝试了建议的解决方案,但它在这里不起作用,至少我无法找到它。如果你能帮忙,我将不胜感激。谢谢 我在这里试图做的是在三个不同的图中绘制y值(平均值、平均值、距离)与时间的关系 这是我的密码: import matplotlib.pyplot as plt import numpy as np import pandas as pd import mysql.connector from matplotlib import s

如何在matlotlib图形上显示数据(y轴值)? 我发现这是相关的,我尝试了建议的解决方案,但它在这里不起作用,至少我无法找到它。如果你能帮忙,我将不胜感激。谢谢

我在这里试图做的是在三个不同的图中绘制y值(平均值、平均值、距离)与时间的关系

这是我的密码:

import matplotlib.pyplot  as plt
import numpy as np
import pandas as pd
import mysql.connector
from matplotlib import style
from matplotlib.pyplot import figure
from matplotlib import pyplot

conn = mysql.connector.MySQLConnection(user='root', password='', host='127.0.0.1', database='DB')
cursor = conn.cursor()
sql = "SELECT Time, mean, Aver, Dist FROM datatb order by Time Desc limit 100"
cursor.execute(sql)
result = cursor.fetchall()

df = pd.DataFrame(list(result),columns=["Time","Mean","Aver","Dist"])


plt.figure(num=None, figsize=(15, 12), dpi=150, facecolor='w', edgecolor='k')

plt.subplot(2,1,1)
plt.title('Mean')
plt.plot(df['Time'], df["Mean"],'o-', c='blue',label=r'$Mean$')
plt.legend(loc='best')
ax = plt.gca()
ax.invert_xaxis()

plt.figure(num=None, figsize=(15, 12), dpi=150, facecolor='w', edgecolor='k')
plt.subplot(2,1,2)
plt.title('Aver')
plt.plot(df['Time'], df["Aver"],'o-', c='green', label=r'$Aver$')
plt.legend(loc='best')
ax = plt.gca()
ax.invert_xaxis()

plt.figure(num=None, figsize=(15, 12), dpi=150, facecolor='w', edgecolor='k')
plt.subplot(2,1,2)
plt.title('Dist')
plt.plot(df['Time'], df["Dist"], 'o-', c='brown', label=r'$Dist$')
plt.legend(loc='best')
ax = plt.gca()
ax.invert_xaxis()


conn.close()
cursor.close()
我的情节是这样的:


使用
注释


示例:

import numpy
from matplotlib import pyplot

x = numpy.arange(10)
y = numpy.array([5,3,4,2,7,5,4,6,3,2])

fig = pyplot.figure()
ax = fig.add_subplot(111)
ax.set_ylim(0,10)
pyplot.plot(x,y)
for i,j in zip(x,y):
    ax.annotate(str(j),xy=(i,j))

pyplot.show()

现在,只需将
x
y
替换为
df['Time']
df[“Mean”]


使用
注释


示例:

import numpy
from matplotlib import pyplot

x = numpy.arange(10)
y = numpy.array([5,3,4,2,7,5,4,6,3,2])

fig = pyplot.figure()
ax = fig.add_subplot(111)
ax.set_ylim(0,10)
pyplot.plot(x,y)
for i,j in zip(x,y):
    ax.annotate(str(j),xy=(i,j))

pyplot.show()

现在,只需将
x
y
替换为
df['Time']
df[“Mean”]



我不确定,您的问题是什么-您的子批次似乎是。。。不寻常。您尝试链接解决方案的代码部分在哪里?什么方法不起作用?你能添加数据吗?我尝试的是在线点上显示y值。我尝试了这部分,
在zip(x,y):ax.annotate(str(j),xy=(I,j))
,但我不知道如何准确实现它,它也不起作用。我不确定,你的问题是什么-你的子部分似乎是。。。不寻常。您尝试链接解决方案的代码部分在哪里?它以什么方式不起作用?你能添加数据吗?我试图做的是在线点上显示y值。我尝试了这一部分,
在zip(x,y):ax.annotate(str(j),xy=(I,j))
但是我不知道如何准确实现它,它也不起作用。是的,但我已经给出了这个解决方案的链接。这是我无法实现的解决方案。您能告诉我如何在我的代码中实现此解决方案吗?请添加一些数据好吗?没有这些数据,我无法解决你原来的问题。我发布这个示例是因为您没有发布数据。我没有更改x和y,当我更改它们时,它现在可以工作了。谢谢。是的,但是我已经给出了这个解决方案的链接。这是我无法实现的解决方案。您能告诉我如何在我的代码中实现此解决方案吗?请添加一些数据好吗?没有这些数据,我无法解决你原来的问题。我发布这个示例是因为您没有发布数据。我没有更改x和y,当我更改它们时,它现在可以工作了。非常感谢。