1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 【适合Python语言小白的股价图】利用Python中的matplotlib绘制股价图(非k线图)

【适合Python语言小白的股价图】利用Python中的matplotlib绘制股价图(非k线图)

时间:2022-10-04 02:08:33

相关推荐

【适合Python语言小白的股价图】利用Python中的matplotlib绘制股价图(非k线图)

【适合Python语言小白的股价图】利用Python中的matplotlib绘制股价图(非k线图)

代码小白,最近做一家公司的股价复盘用到了matplotlib,在此做个小小的记录。代码的逻辑比较笨,如果有更好的写法希望指点!

前言:

描述:利用Python中的matplotlib绘制一幅简单的股价图

数据:wind终端-工具-导出,Excel格式每日股价(屏幕范围内数据)

内容:图片标题、2001年-收盘价走势、两个特殊标记点、网格、时间横坐标轴

效果展示:

代码:

1.导入代码块

import matplotlib.pyplot as pltimport matplotlib.dates as mdateimport pandas as pdimport datetimefrom matplotlib.dates import YearLocator

2.导入Excel文件(股价数据),将Excel放入根目录可以如下直接引用

df = pd.read_excel('ALGN.O_每日行情数据.xlsx', engine='openpyxl', header=0)

3.此处日期指每日股价,将其从字符串格式转换为时间格式

df["日期"]=pd.to_datetime(df['日期'],format='%Y-%m-%d')

4.把数据交给matplotlib作图

fig = plt.figure(figsize=(15,10))#设置画布大小ax = fig.add_subplot(1,1,1)#设置子图大小ax.xaxis.set_major_formatter(mdate.DateFormatter('%Y-%m-%d'))#设置时间标签显示格式ax.xaxis.set_major_locator(mdate.YearLocator())#按年设置坐标轴的刻度# fig.autofmt_xdate()#自动调整横坐标的刻度密度,因为我按年设置,没有用到ax.set_title("ALGN.O")#对给定子图的坐标轴设置标题ax.plot(df["日期"],df["收盘价"])

5.设置特殊标记点-5-31和-3-31

date=[datetime.datetime.strptime(x,'%Y-%m-%d') for x in ["-5-31","-3-31"]]#将字符串的时间转换成时间格式的时间,存在可迭代对象date中for i in date:circle = plt.Circle((i,df["收盘价"].loc[(df["日期"]==str(i))]),10, color='red')#circle函数标记特殊点:坐标(x,y),10号大小、红色标记ax.add_artist(circle)#把点点画入图中

6.增加一些细节

plt.xticks(rotation=45,fontsize=10)#横坐标的时间旋转45度显示plt.tight_layout()#tight_layout会自动调整子图参数,使之填充整个图像区域。这是个实验特性,可能在一些情况下不工作。它仅仅检查坐标轴标签、刻度标签以及标题的部分。plt.grid(b=True, axis='y') #只显示与x轴平行的网格线plt.show()#输出图片

参考文章:

1.plt.tight_layout()

2.python如何生成一个日期列表?

3.python matplot plt画折现/曲线图,并在上面标记

4.解决 matplotlib 画图时横坐标重叠的问题

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。