根据CSV文件的数据,画折线图。
首先准备数据如下图:
代码如下
import matplotlib.pyplot as plt
import pandas as pd
import matplotlib.dates as mdate
plt.style.use("seaborn-darkgrid")
# 读取数据
score= pd.read_csv("score.csv")
print(score.head())
# 设置中文字体为黑体字
plt.rcParams['font.sans-serif'] = ['SimHei']
# 第一根折线图
fig,ty1 = plt.subplots(figsize=(12,6))
# plt.plot(score["Mathematics"])
# # 第二根折线图
# plt.plot(score["Geography"])
# X周日期格式
ty1 = plt.gca() #表明设置图片的各个轴,plt.gcf()表示图片本身
ty1.xaxis.set_major_formatter(mdate.DateFormatter('%Y-%m-%d')) # 横坐标标签显示的日期格式
# plt.xticks(pd.date_range('2021-10-11','2021-10-18',freq='1d')) #横坐标日期范围及间隔
plt.xticks
# 第二个Y轴标记
ty2 = ty1.twinx()
ty1.plot(score["Mathematics"])
ty2.plot(score["Geography"],"r")
# 添加标题和给Y轴打上标题
ty1.set_ylabel("数学成绩", fontsize=12) ## Y轴标题
ty2.set_ylabel("地理成绩", fontsize=12) ## Y轴标题
plt.title("成绩折线图", fontsize=18) ## 标题
# 添加图例
ty1.legend(['数学分数'],loc=2,fontsize=12)
ty2.legend(['地理分数'],loc=2,bbox_to_anchor=(0,0.9),fontsize=12)
# 去掉网格线
ty1.grid(False)
ty2.grid(False)
# X、Y轴字体大小
ty1.tick_params(axis='both', which='major', labelsize=10)
ty2.tick_params(axis='both', which='major', labelsize=10)
# 显示图表
plt.show()
结果:
X轴的时间跟CSV文件的日期不一致,原来是matplotlib这个包的版本不能用最新的,我卸载重新装3.4.1的就可以了
更多推荐
Python读取CSV文件画折线图
发布评论