python绘图苹果_精品教学案例 | 利用Matplotlib和Seaborn对苹果股票价格进行可视化分析...

本案例通过Python的Matplotlib和Seaborn库,对苹果公司2013-2018年股票数据进行可视化分析,包括折线图、散点图、柱状图、直方图、箱线图等多种图表,以展示股票价格变化趋势和交易量。案例旨在提升数据可视化能力和熟悉这两种工具的使用。
摘要由CSDN通过智能技术生成

66c2c3451aaeb0facca9fa3fe5d7da3f.png

查看本案例完整的数据、代码和报告请登录数据酷客(http://cookdata.cn)案例板块。

本案例适合作为大数据专业数据可视化课程的配套教学案例。通过本案例,能够达到以下教学效果:

  • 培养学生对真实数据进行可视化分析的能力。案例基于苹果公司2013-2018年的股票数据,进行股票数据涨跌的可视化分析。
  • 帮助学生熟悉常用图表的绘制方法。例如:折线图、散点图、柱状图、直方图、核密度图和小提琴图等。
  • 提高学生动手实践能力。案例中使用Python中的两个常用可视化工具Matplotlib和Seaborn,提高学生绘制常用图表的实践能力。

可视化分析在数据分析中扮演着相当重要的角色。可视化可以使数据更为清晰得传递信息,使数据分析更为生动具体。Matplotlib是一个Python库,用于2D绘图,而Seaborn是Python基于Matplotlib的数据可视化的库。Seaborn在Matplotlib的基础上进行了更高级的封装,从而使得作图更加简单方便,可以作出信息丰富且美观的图。本案例旨在帮助大家快速熟悉Matplotlib和Seaborn这两个可视化工具的操作。

1.数据载入及预处理

本案例我们将分析一个股票数据集,此数据集包含美国500家上市公司2013-2018年的股票数据,我们选择其中苹果公司的股票作为分析对象,来进行股票涨跌的分析。S&P 500 Index数据集中每一列数据对应的含义如下表所示:

02efc559c942e56582ee760b0b0f055e.png

首先,我们导入数据集并采样得到苹果公司股票(AAPL)2013-2018年的数据。为了便于之后的分析,我们从date列提取年和月的信息并添加yearmonth两列数据。

import pandas as pd
import numpy as np
df = pd.read_csv('./input/all_stocks_5yr.csv')
appl = df.loc[df['Name'] == 'AAPL']
appl = appl.set_index('date')
mon = []
year = []
for item in appl.index:
    mon.append(int(item[5:7]))
    year.append(int(item[0:4]))
appl['month'] = mon
appl['year'] = year
appl.head()

2b88a4cb1e87411470434b06c8dae4de.png

2.Matplotlib绘图

2.1 折线图

折线图用于绘制连续型数据,展示数据变化的趋势。

我们将数据以年为单位进行分组,以每年收盘价格的平均值绘图。

%matplotlib inline
import matplotlib.pyplot as plt
x = appl.groupby('year').close.mean().index
y = appl.groupby('year').close.mean().values
plt.plot(x,y)

72d838dbadfc5d504a4a4e9d3124a291.png

a3a2b0cf59ce06fa56db7696c62feebf.png

分析:从图中我们可以看出,苹果公司2013-2018年的股票收盘价格变化趋势,总体趋势走高,但是我们注意到2015年,出现下降趋势,但2016股票行情回暖并大幅度走高。

此处我们用到了plot()函数,其用法很简单,x为横坐标数据,y为纵坐标数据。除此之外,Matplotlib还提供了丰富的线形及其颜色,还可以调节线的宽度(linewidth),数据点的大小(markersize)及设置坐标轴的名字等。同时,可以利用grid()函数绘制网格线;默认为False,利用legend()函数设置图例,使用其loc参数设置图例的位置等。另外,Matplotlib允许多条折线绘制在一张图中。

plt.plot(x,y,label='Close Price')
plt.grid(True)
plt.legend(loc = 'upper left')
plt.title('Average Close Price in 2013-2018')
plt.xlabel('Year')
plt.ylabel('Average Close Price')

b80d34822aa1a6cfb839314b7ca825cd.png

a05dd278e46efd6cdac689e4504f4211.png

绘制2013-2018年,每年成交量平均值的折线图。

x1 = appl.groupby('year').volume.mean().index
y1 = appl.groupby('year').volume.mean().values
plt.plot(x1, y1, color='red', marker='o', linestyle='dashed', linewidth=2, markersize=12)
#or
plt.plot(x1, y1, 'r--',label='Close Price', linewidth=2, markersize=12)
plt.legend(loc = 'upper right')
plt.title('Average volume in 2013-2018')
plt.xlabel('Year')
plt.ylabel('Average volume')
plt.grid(True)

44f95fa9b7e01a80d69f9bf760785b6d.png

分析:此图反映了2013-2018年间,苹果公司股票交易量的变化趋势,我们可以看出其交易量整体呈下降趋势,但2017年开始转变。结合上一个图,我们看出,虽然股票的价格升高,但是股票的成交量降低,所以由这两个图不能很明确的体现股票真正价值的变化,其股票价格的升高,可能是由于货币价值的变化,通货膨胀等,具体原因需要结合更多的数据集进行分析。

我们将数据以年为单位进行分组,把股票最低价格的平均值和最高价格的平均值绘制于同一个画布上。

x1 = appl.groupby('year').low.mean().index
y1 = appl.groupby('year').low.mean().values
y2 = appl.groupby('year').high.mean().values
plt.title('Average Price in 2013-2018')
plt.xlabel('Year')
plt.ylabel('Average Price')
plt.plot(x1,y1, 'go-', label='High', linewidth=2)
plt.plot(x1,y2, 'rs--',  label='Low',linewidth=2)
plt.legend(('High', 'Low'),loc='upper left')
plt.grid(True)

f327d07fe231a331ddcbcae0014e36f5.png

分析

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值