Python财经实践,股票数据获取及可视化展示

来源:志斌的python笔记

今天跟大家分享一下,如何将获取股票数据以及将数据进行可视化展示。

01

股票数据获取

这次跟大家分享一种不需要爬虫就可以获取股票数据的方式。Python有一个第三方库—Tushare库,我们使用它就可以轻松的获取股票的数据。

因为它是第三方库,所以我们需要用pip对它进行安装。

pip install Tushare

安装好以后,我们就可以尝试使用它来进行获取数据了,代码如下:

import tushare as ts
df = ts.get_k_data('000002',start='2009-01-01',end='2019-01-01')
df.to_excel('股价数据.xlsx')

查看一下获取的数据:

7a6cad7dc965877f706aaae61c76cf8b.png

其中,date为交易日期,open为开盘价,close为收盘价,high为最高价,low为最低价,volume为成交量,code为股票代码。

02

绘制股价走势图

上面我们已经获取到了股票的数据,那么现在我们就可以开始进行可视化图表绘制了。

在绘图之前,我们需要对数据进行简单的处理,要先将date设置成行索引,代码如下:

df = df.set_index('date')

查看一下现在数据样式:

2379beb251d157b688a288b175f92666.png

我们来进行绘制,代码如下:

plt.rcParams['font.sans-serif'] = ['SimHei']  #解决中文乱码问题
df['close'].plot(title='股价走势图')
plt.show()

股价走势图:

d0e58ae99126f81c69df17e0d3718254.png

我们还可以尝试用matplotlib库来进行绘制,代码如下:

plt.rcParams['font.sans-serif'] = ['SimHei']  #解决中文乱码问题
plt.rcParams['axes.unicode_minus'] = False    # 解决“-”显示为方块的问题
df = ts.get_k_data('000002',start='2009-01-01',end='2019-01-01')
df['date'] = df['date'].apply(lambda x:datetime.strptime(x,'%Y-%m-%d'))
plt.plot(df['date'],df['close'])
plt.title('股价走势图')
plt.show()

股价走势图:

8edf3d9b96738baa2cef9aa0abc34221.png

03

绘制K线图

2daeb46a43d409c679fafbc472b095e7.png

(来源:东方财富网)

我们在看股票的时候,经常会遇到上面这种K线图,别看它花里胡哨的,其实很容易绘制的,下面我们就一起来看看,这种K线图应该怎么绘制。

首先,先来给大家介绍一点K线图的基本知识。

b2c779a2376e09328d98be695f82d9ed.gif

K线图有一个别名叫蜡烛图,它主要是通过股票的最高价、开盘价、最低价和收盘价进行绘制的。K线分为两种,如果当天的收盘价高于开盘价,则称为阳线,绘制成红色;同理,如果当天收盘价低于开盘价,则称为阴线,绘制成绿色。

对K线图有了简单的了解,我们就开始进行绘制吧。Python绘制K线图并不难,主要是借用了mpl_finance库,这里我们安装一下这个库,命令如下:

pip install mpl_finance

在进行绘制之前,我们需要先对日期数据进行处理,因为mpl_finance库读取日期数据有特定的格式,代码如下:

def date_to_num(dates):
   num_time = []
   for date in dates:
       date_time = datetime.datetime.strptime(date,'%Y-%m-%d')
       num_date = date2num(date_time)
       num_time.append(num_date)
   return  num_time
df_arr = df.values
df_arr[:,0] = date_to_num(df_arr[:,0])

我们打印一下前10条数据看一下结果:

363d0c257a90d19aeea26a8df0c263f7.png

从上面,我们可以看到,文本数据的日期,都转化为了数字格式。

现在我们可以开始绘制K线图了,代码如下:

figsize,axis = plt.subplots(figsize=(15,6))
mpf.candlestick_ochl(axis,df_arr,width=0.6,colorup='red',colordown='green',alpha=1.0)
plt.grid(True)
ax.xaxis_date()
plt.title('K线图')
plt.rcParams['font.sans-serif'] = ['SimHei']  #解决中文乱码问题
plt.rcParams['axes.unicode_minus'] = False    # 解决“-”显示为方块的问题
plt.show()

K线图:

60720da5d9ca129b0e95f87865288131.png

但是,我们与上图进行对比后发现,这个K线图还缺少均线图,所以我们再来给它加上均线图,核心代码如下:

# 绘图部分
fig,ax =plt.subplots(figsize=(15,6))
mpf.candlestick_ochl(ax,df_arr,width=0.6,colorup='red',colordown='green',alpha=1.0) # 绘制K线图
plt.plot(df_arr[:,0],df['MA5'])
plt.plot(df_arr[:,0],df['MA10'])
plt.grid(True)
ax.xaxis_date()
plt.title('东方财富网')
plt.xlabel('日期')
plt.ylabel('价格')
plt.rcParams['font.sans-serif'] = ['SimHei']  #解决中文乱码问题
plt.rcParams['axes.unicode_minus'] = False    # 解决“-”显示为方块的问题
plt.show()

K线图+均线图:

a0f4caee25edebaf3aaf1657dec44ca8.png

04

拓展

0c62766875d312445995d756eefab6b3.png

K线图和均线图会绘制后,我们就可来学习绘制每日成交量柱形图了,它们三张图往往是一起出现的。核心代码如下:

#每日成交量柱形图绘制部分
ax2.bar(df_arr[:,0],df_arr[:,5])
ax2.set_xlabel('日期')
ax2.set_ylabel('成交量')
ax2.grid(True)
ax2.xaxis_date()

每日成交量柱形图:

c08fbc603e0a6ccfcfaf3627c21d961d.png

05

小结

1. 本文详细的介绍了如何绘制股票K线图+均线图,并且拓展了每日成交量柱形图的绘制方式,感兴趣的读者可以尝试复现一下。

2. 本文仅供学习参考,不做它用。

-------- End --------

7b67a8052296b4edb7f76f6cdcc55a5c.png
精选资料

回复关键词,获取对应的资料:

关键词资料名称
600《Python知识手册》
md《Markdown速查表》
time《Python时间使用指南》
str《Python字符串速查表》
pip《Python:Pip速查表》
style《Pandas表格样式配置指南》
mat《Matplotlib入门100个案例》
px《Plotly Express可视化指南》
精选视频

可视化: Plotly Express

财经: Plotly在投资领域的应用 | 绘制K线图表

排序算法: 冒泡排序 | 选择排序 | 快速排序 | 归并排序 | 堆排序 | 插入排序 | 希尔排序 | 计数排序 | 桶排序

57b7a92c30e48ec7cf41c09db3ab12f8.png
  • 3
    点赞
  • 68
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Python是一种强大的编程语言,提供了许多库和工具来获取股票数据并进行可视化。以下是一个用于实现这一目标的基本步骤: 首先,需要引入一些Python库,比如pandas、numpy和matplotlib等。这些库将帮助我们处理数据和图形生成。 然后,我们可以使用pandas库的函数来获取股票数据。例如,可以使用`pandas_datareader`库的`get_data_yahoo()`函数从雅虎财经获取股票数据。这个函数接受股票代码和起止日期作为参数,并返回一个带有股票数据的pandas DataFrame对象。 接下来,将获取股票数据用于可视化。可以使用matplotlib库的函数创建各种类型的图表,如折线图、柱状图和散点图等。例如,可以使用`plot()`函数创建一个基于时间的折线图,展示股票价格随时间的变化。 如果想要添加更多的可视化效果,可以使用其他库,比如seaborn和plotly等。这些库提供了更多的图表类型和定制选项。 最后,为了更好地展示股票数据,可以添加一些数据分析技术,如移动平均线、趋势线和技术指标等。这可以通过使用一些Python库和算法来实现,如ta-lib和scikit-learn等。 综上所述,Python提供了丰富的库和工具,可以获取股票数据并进行可视化。只需引入合适的库、获取股票数据、创建图表以及添加一些数据分析技术,就可以完成这一任务。这使得Python成为分析和可视化股票数据的理想选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值