python绘图作业_python绘图实例——股票数据可视化

一、项目需求

1 获得特定时间段股票数据

2 查询时间段内最大成交量日期

3 将股票信息中日期字符串转换为日期类型

4 按照成交金额排序

5 绘制股票成交量折线图

6 绘制股票OHLC线图

7 绘制股票成交量折线图(按周)

8 绘制股票K线图 (数据每天变化趋势)

二、前期准备

利用python获取贵州茅台2019年的股票数据(通过tushare库)

观察数据、对数据中各项特征进行初步了解

l熟悉相关的股票知识及概念(换手率、K线、OHLC线等)

确定工具:pandas、matplotlib、mpl_finance等库

三、项目过程

1 通过tushare库获取贵州茅台2019年的股票数据

2 根据项目需求,完成规定的项目作业

3 绘制项目报告

四、项目报告

(1)获得特定时间段股票数据(2019年)

import tushare as ts

df = ts.get_hist_data('600519',start='2019-01-01',end='2019-12-31')

查看数据(截取部分):

为了更方便查看,我们将数据重新排列一下:

maotai = df.iloc[::-1]

再次查看:

(2)查询时间段内最大成交量日期

print("贵州茅台2019年的最大成交量为:{}".format(maotai['high'].max()))

可以看到,最大成交量为:1241.61。

maotai[maotai['high'].values == 1241.61].index

可以看到,最大成交量日期:2019年11月19日。

(3)将股票信息中日期字符串转换为日期类型

在我们的数据表中,日期是以索引的形式给出,所以我们可以先将索引转换成一列新特征,特征名以‘日期’命名。

maotai['日期']=maotai.index

此时数据表中已经有了“日期”这一项特征,通过进一步查看我们可以知道,这项特征是object型的。下面我们将其转换为日期类型。

import pandas as pd

maotai['日期'] = pd.to_datetime(maotai['日期'],infer_datetime_format=True)

使用info()查看数据类型,此时“日期”已被改成日期类型。

(4)按照成交金额排序

使用sort_values()进行排序处理(这里仅展示部分截图):

df['volume'].sort_values()

同时,我们也可以采用降序的方式进行展示:

maotai['volume'].sort_values(ascending=False)

(5)绘制股票成交量折线图

import matplotlib.pyplot as plt

import seaborn as sns

import warnings

sns.set()

%matplotlib inline

warnings.filterwarnings('ignore')

import matplotlib

plt.figure(figsize=(8,6),dpi=80,num=4)

myfont=matplotlib.font_manager.FontProperties(fname='C:\Windows\Fonts\simsun.ttc')

x= maotai['日期']

y1 = maotai['volume']

plt.plot(x, y1, color='r',label='股票成交量', linewidth=2)

plt.xlabel('日期',FontProperties=myfont,fontsize=15)

plt.ylabel('成交量',FontProperties=myfont,fontsize=15)

plt.title('股票成交量折线图',FontProperties=myfont,fontsize=15)

plt.legend(prop=myfont)

(6)绘制股票OHLC线图

plt.figure(figsize=(12,8),dpi=80,num=4)

myfont=matplotlib.font_manager.FontProperties(fname='C:\Windows\Fonts\simsun.ttc')

x= maotai['日期']

plt.plot(x, maotai.loc[:,'open'], label='开盘价', linewidth=2)

plt.plot(x, maotai.loc[:,'high'], label='最高价', linewidth=2)

plt.plot(x, maotai.loc[:,'low'], label='最低价', linewidth=2)

plt.plot(x, maotai.loc[:,'close'], label='收盘价', linewidth=2)

plt.xlabel('日期',FontProperties=myfont,fontsize=15)

plt.ylabel('价格/汇率',FontProperties=myfont,fontsize=15)

plt.title('茅台股票OHLC线图',FontProperties=myfont,fontsize=15)

plt.legend(prop=myfont)

(7)绘制股票成交量线图

df = ts.get_hist_data('600519',start='2019-01-01',end='2019-12-31',ktype='W')

maotai_week = df.iloc[::-1]

maotai_week['日期']=maotai_week.index

maotai_week['日期'] = pd.to_datetime(maotai_week['日期'],infer_datetime_format=True)

plt.figure(figsize=(12,8),dpi=80,num=4)

myfont=matplotlib.font_manager.FontProperties(fname='C:\Windows\Fonts\simsun.ttc')

x= maotai_week['日期']

y1 = maotai_week['volume']

plt.plot(x, y1, color='r',label='股票成交量', linewidth=2)

plt.xlabel('日期',FontProperties=myfont,fontsize=15)

plt.ylabel('成交量',FontProperties=myfont,fontsize=15)

plt.title('股票成交量线图(按周)',FontProperties=myfont,fontsize=15)

plt.legend(prop=myfont)

(8)绘制股票K线图 (数据每天变化趋势)

import matplotlib.dates as mdates

import mpl_finance as mpf

df = ts.get_hist_data('600519',start='2019-01-01',end='2019-12-31')

maotai = df.iloc[::-1]

maotai['date']=maotai.index

maotai['date'] = pd.to_datetime(maotai['date'])

maotai_k = zip(mdates.date2num(maotai['date']),maotai['open'], maotai['close'],

maotai['high'], maotai['low'])

plt.rcParams['font.sans-serif']=['SimHei']

plt.figure(figsize=(12,8),dpi=80,num=4)

# x= maotai['日期']

ax = plt.axes(facecolor='#070707')

# ax.xaxis_date()

mpf.candlestick_ochl(ax, maotai_k, width=0.5,

colorup='r', colordown = '#00ffff',

alpha = 1)

plt.title('茅台股票K线图',fontsize=15)

ax.xaxis_date()

plt.xticks(rotation=45)

由于不是一次性打的代码,所以有些不连贯,大家操作的时候可以再继续进行精进。

以上便是的内容,感谢大家的细心阅读,同时欢迎感兴趣的小伙伴一起讨论、学习,想要了解更多内容的可以看我的其他文章,同时可以持续关注我的动态~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值