matplotlib连接mysql数据库画折线图时,x轴的顺序与数据库中的不一样导致折线图错乱怎么办
时间: 2024-03-12 16:47:55 浏览: 84
python使用matplotlib模块绘制多条折线图、散点图
如果x轴的顺序与数据库中的不一致,可能会导致折线图错乱。解决这个问题的方法是在绘制折线图前,按照x轴的值进行排序。具体的方法是使用DataFrame的`sort_values()`方法,将DataFrame按照x轴的值进行排序,然后再绘制折线图。
下面是一个示例代码:
```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)
plt.plot(df['stock_name'], df['amplitude'], color='blue', linewidth=1)
# 显示图形
plt.show()
# 关闭数据库连接
conn.close()
```
在上面的代码中,我们使用`sort_values()`方法按照x轴的值对DataFrame进行排序,然后再绘制折线图。这样就可以保证折线图的x轴顺序与数据库中的一致,避免了折线图错乱的问题。
阅读全文