废话不说,直接上图形,如下:
代码如下:
# -*- coding: utf-8 -*-
'''
使用python 绘制曲线图
Author: yufuchang
Date: 2021-05-12
'''
import matplotlib.pyplot as plt
import numpy as np
import matplotlib.dates as mdates
from matplotlib.dates import date2num
import pandas as pd
import csv
from pylab import *
# figure 可以看成整个图表,然后可以在figure上增加多个子图(ax)
fig = plt.figure()
# 增加一个子图,类型为1*1类型
ax=fig.add_subplot(1, 1, 1)
'''
# 采用plot方法绘制图形,plot传入2个list,分别代表xlist 和ylist
plt.plot([1, 2, 3, 4], [2, 3, 4, 5])
'''
# 读取一个三列的数据 ,格式csv 将每列的数据一次增加到list中
dates = []
data = []
data1 = []
with open('11.csv', 'r') as f:
reader = csv.reader(f)
for i in reader:
dates.append(int(i[0]))
data.append(int(i[1]))
data1.append(int(i[2]))
# dates, close = np.loadtxt('11.csv', delimiter=",", unpack=True, converters={0: mdates.bytesdate2num('%Y-%m-%d')})
# 设置整个图表的标题
fig.suptitle('figure title demo', fontsize=14, fontweight='bold')
# 设置子图的标签
ax.set_title("title")
# 设置X,Y轴标签
ax.set_xlabel("x label")
ax.set_ylabel("y label")
# 设置X,Y轴最大最小值
plt.ylim((0, 150))
# 绘制第一条曲线
ax.plot(dates, data, c='b')
# 绘制第二条曲线,使用颜色red
ax.plot(dates, data1, c='r')
# 绘制示例标签
plt.plot(dates[0], data[0], c='b', label='the first chart ')
plt.plot(dates[0], data1[0], c='r', label='the second chart ')
plt.legend()
plt.show()
这里有2个疑问
1.converters 报错,使用了一个比较笨的方法,还需要学习研究
2.不能使用汉字,如果使用汉字在图形上会出现方块类型的乱码