matplotlib画折线图时怎么在每个点上加上具体数值
时间: 2024-03-12 20:48:06 浏览: 122
在matplotlib中,在每个点上加上具体数值可以使用`annotate()`函数,它可以在指定的位置添加带有注释文本的箭头或文本框。
下面是一个示例代码:
```python
import pandas as pd
import pymysql
import matplotlib.pylab as plt
# 解决中文乱码
plt.rcParams['font.sans-serif'] = 'SimHei'
# 连接数据库
try:
conn = pymysql.connect(
host='192.168.8.129',
user='root',
passwd='123456',
db='stock',
port=3306,
charset='utf8'
)
except Exception as e:
print('连接数据库失败:', e)
exit(-1)
# 从数据库读取数据
df = pd.read_sql('select * from largest_amplitude', conn)
# 按照x轴的值进行排序
df = df.sort_values('stock_name')
# 绘制折线图
plt.figure(figsize=(13, 9))
plt.xlabel('股票名称')
plt.ylabel('振幅')
plt.title('五天内振幅最大的十只股票折线图', fontsize=18)
# 绘制折线图并在每个点上添加具体数值
for i, (x, y) in enumerate(zip(df['stock_name'], df['amplitude'])):
plt.plot(x, y, 'bo-', linewidth=1)
plt.annotate('%.2f' % y, xy=(x, y), xytext=(-10, 10), textcoords='offset points')
# 显示图形
plt.show()
# 关闭数据库连接
conn.close()
```
在上面的代码中,我们使用了一个for循环遍历每个点,使用`plot()`函数绘制折线图,并使用`annotate()`函数在每个点上添加具体数值。其中,`xy`参数指定添加注释的位置,`xytext`参数指定注释文本的偏移量,`textcoords`参数指定偏移量的参考系。这样就可以在每个点上添加具体数值了。
阅读全文