Python实战:获取并可视化贵州茅台股票历史交易数据
本文介绍如何使用Python获取并可视化贵州茅台股票的历史交易数据。通过网易财经下载CSV格式数据,利用Pandas进行时间范围筛选与排序,并结合Matplotlib库绘制成交量折线图及OHLC(开高低收)多线图表,直观展示股票交易趋势。
Python获取茅台股票数据背景
茅台酒的酿造年份是否如‘18年’字样所示?其庞大的月销量如何保障供应?高单价背后的月度利润几何?这些疑问可通过Python技术揭开面纱。
数据下载与CSV格式说明
图1展示了网易财经提供的贵州茅台股票历史交易数据界面。

点击‘下载数据’超链接,将弹出如图2所示的对话框。选择所需参数后点击‘下载’按钮,即可获取CSV格式的数据文件。

CSV(Comma-Separated Values,逗号分隔值)是一种以逗号分隔数据项(字段)的数据交换格式,广泛应用于电子表格与数据库间的数据交互。
提示:CSV为纯文本文件,可使用记事本等编辑器打开(如图2-5),也可用Excel打开(如图2-6)。需注意,将Excel表格另存为CSV可能导致格式丢失,例如文本型数据‘0001’在Excel中打开可能显示为数字1。在Windows平台下,若需通过Excel正确打开CSV且避免乱码,应确保文件保存为GBK字符集。

使用Python绘制股票成交量折线图
上述折线图的实现代码如下:
#coding=utf-8
#代码文件:chapter6/ch6.2.6.py
import matplotlib.pyplot as plt
import pandas as pd
plt.rcParams['font.family'] = ['SimHei'] # 设置中文字体
plt.rcParams['axes.unicode_minus'] = False # 设置负号正常显示
plt.figure(figsize=(15, 5))
f = r'data\股票的历史交易数据.xlsx'
df = pd.read_excel(f)
df2 = df.query("Date >='2021-03-01' and Date < '2021-04-01'").sort_values(by='Date') ①
#绘制折线
plt.plot(df2['Date'], df2['Volume']) ②
plt.title('贵州茅台股票')
plt.ylabel('成交量') # 添加y轴标题
plt.xlabel('交易日期') # 添加x轴标题plt.xticks(rotation=40)plt.show()代码逻辑解释如下。
• 第①行代码指定时间范围查询数据,并按‘Date’字段进行排序。
• 第②行代码调用plt.plot函数绘制折线图,其中df2[‘Date’]作为x轴数据,df2[‘Volume’]作为y轴数据。

绘制OHLC多线图表
该折线图的实现代码如下:
#coding=utf-8
#代码文件:chapter6/ch6.2.7.py
import matplotlib.pyplot as plt
import pandas as pd
plt.rcParams['font.family'] = ['SimHei'] # 设置中文字体plt.rcParams['axes.unicode_minus'] = False # 设置负号正常显示
plt.figure(figsize=(15, 5))
f = r'data\股票的历史交易数据.xlsx'
df = pd.read_excel(f)
df2 = df.query("Date >='2021-03-01' and Date < '2021-04-01'").sort_values(by='Date')
plt.title('贵州茅台股票历史OHLC折线图')
plt.plot(df2['Date'], df2['Open'], label='开盘价') ①
plt.plot(df2['Date'], df2['High'], label='最高价')
plt.plot(df2['Date'], df2['Low'], label='最低价')
plt.plot(df2['Date'], df2['Close'], label='收盘价') ②
plt.ylabel('成交量')
plt.xlabel('交易日期')
plt.xticks(rotation=40)
plt.show()代码逻辑解释如下。
第①行和第②行代码分别绘制了4条折线,label参数用于定义图例中显示的折线标签名称。
至此,我们即可直观地查看茅台股票一个月内的历史交易数据走势。
周末疫情严峻,请大家减少外出,做好防护。本文关于Python查看茅台股票交易数据的介绍到此结束,更多相关内容请查阅本站往期文章或继续浏览后续文章,感谢支持。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













