一、概念
折线图是用直线将各数据连接起来组成的图形。常用来观察数据随时间变化的趋势,例如股票价格、温度变化等等。
二、绘制一个简单的折线图
linspace是numpy中的一个将区间等分的函数,如numpy.linspace(-10,10,100)就是将-10到10这个区间等分为100份进行取值。
import numpy as np
import matplotlib.pyplot as plt
x=np.linspace(-10,10,5)
y=x**2
plt.plot(x,y)
plt.show()
三、折线图函数的一些配置
折线图函数的配置和散点图相似。由于没有找到上证指数000001.SH.csv文件,所以我随机生成了一个000001.SH.csv文件。plot()函数是生成普通的折线图,plot_date()函数生成横轴为日期的折线图,plot_date()函数中默认生成的是点图,需要加上fmt=‘-’就会变为折线图。color指定点的颜色,marker指定点的形状。一张图中可以画等多个折线图,如下图所示。
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
#随机生成000001.SH.csv文件,保存到当前目录
arr=[]
header='Date,Open,High,Low,Close'
for month in range(1):
for day in range(20):
inta=sorted(np.random.randint(1,100,size=4))
temp=[str(month+1)+'/'+str(day+1)+'/2021',inta[1],inta[3],inta[0],inta[2]]
arr.append(temp)
np.savetxt('000001.SH.csv',arr,fmt='%s',delimiter=',',comments='',header=header)
#打开000001.SH.csv文件
date,open,high,low,close=np.loadtxt('000001.SH.csv',delimiter=',',
skiprows=1,unpack=True,dtype=str)
plt.plot_date(date,open,fmt='-',color='green',marker='<')
plt.plot_date(date,close,fmt='-',color='red',marker='o')
plt.show()
四、作业
1、画出X值为[0,10]的正弦函数图像
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
x=np.linspace(0,10,100)
plt.plot(x,np.sin(x),'-',color='red',marker='')
plt.show()
2、读取000001.SH的Open,High,Low,Close,并将它们画在一张图上
我们还是使用自己生成的000001.SH.csv文件来生成图像。
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
#随机生成000001.SH.csv文件,保存到当前目录
arr=[]
header='Date,Open,High,Low,Close'
for month in range(1):
for day in range(20):
inta=sorted(np.random.randint(1,100,size=4))
temp=[str(month+1)+'/'+str(day+1)+'/2021',inta[1],inta[3],inta[0],inta[2]]
arr.append(temp)
np.savetxt('000001.SH.csv',arr,fmt='%s',delimiter=',',comments='',header=header)
#打开000001.SH.csv文件
date,open,high,low,close=np.loadtxt('000001.SH.csv',delimiter=',',
skiprows=1,unpack=True,dtype=str)
plt.plot_date(date,open,fmt='-',color='green',marker='<')
plt.plot_date(date,high,fmt='-',color='blue',marker='*')
plt.plot_date(date,low,fmt='-',color='black',marker='x')
plt.plot_date(date,close,fmt='-',color='red',marker='o')
plt.show()