Python数据分析基础与应用电子活页7-36绘制折线图分析股票数据.docx
Python数据分析基础与应用
模块
PAGE6
PAGE5
电子活页7-36绘制折线图分析股票数据
【任务7-3】绘制折线图分析股票数据
【任务描述】
使用已有股票数据,编写代码绘制高质量折线图分析股票数据,步骤如下。
①导入模块与读取数据及数据处理。
②绘制简单的股票收盘价折线图。
③给折线图添加标题并设置y轴标签。
④给折线图添加图例。
⑤将折线图中的网格线去掉。
⑥在折线图中添加一些注释文字。
⑦在折线图中正确显示中文。
⑧在折线图中设置x轴、y轴上刻度字体的大小。
【任务实现】
在JupyterNotebook开发环境中创建t7-03.ipynb,然后在单元格中编写代码与输出对应的结果。
1.导入模块
代码如下:
importpandasaspd
importmatplotlib.pyplotasplt
fromdatetimeimportdatetime
plt.style.use(seaborn-darkgrid)
2.读取数据
代码如下:
path=r.\data\stock-2021-4.csv
data=pd.read_csv(path)
3.数据预处理
代码如下:
stock=data.drop(columns=Unnamed:0)
stock[date]=pd.to_datetime(stock.date,format=%Y-%m-%d)
stock=stock.set_index(date)
stock.head()
输出结果:
4.绘制简单的股票收盘价折线图
代码如下:
plt.figure(figsize=(10,6))
plt.plot(stock[close])
输出结果如图1W所示。
图1W股票收盘价折线图之一
图1W所示的股票收盘价折线图看起来有点儿单调和简单,只能够看到数据的变化趋势,无法了解这条折线所表示的意义。下面我们来进行一系列的优化。
5.给折线图添加标题并设置y轴标签
先给图表添加标题并给y轴设置标签。
代码如下:
plt.figure(figsize=(10,6))
plt.plot(stock[close])
#添加标题和给y轴设置标签
plt.ylabel(ClosingPrice,fontsize=15)#收盘价
plt.title(StockPrice,fontsize=18)#标题:股票价格
输出结果如图2W所示。
图2W股票收盘价折线图之二
现有的y轴代表的是股票收盘价,如果想再往图表当中添加另外一列数据代表成交量“volume”,“volume”这一列数据的数值范围和已有的股票收盘价的数值范围不同,如果放在一起,绘制出来的图表可能不好看。
对应的代码如下:
plt.figure(figsize=(12,6))
plt.plot(stock[close])
#第二条折线
plt.plot(stock[volume])
#设置y轴的标签
plt.ylabel(ClosingPrice,fontsize=15)
plt.title(Price-Volume,fontsize=18)
输出结果如图3W所示。
图3W股票收盘价与成交量折线图之一
从图3W中可以看到,代表股票收盘价的那条蓝线变成了接近水平的直线,由于股票收盘价的数值范围和“volume”这一列数据的数值范围相差较大,因此还需要一个y轴来代表“volume”这一列数据。
对应的代码如下:
fig,ax1=plt.subplots(figsize=(10,6))
#第2个y轴的标记
ax2=ax1.twinx()
ax1.plot(stock[close])
ax2.plot(stock[volume],color=r)
#添加标题和y轴的标签,有两个y轴
ax1.set_ylabel(ClosingPrice,fontsize=15)
ax2.set_ylabel(Volume,fontsize=15)
plt.title(Price-Volume,fontsize=18)
输出结果如图4W所示。
图4W股票收盘价与成交量折线图之二
上述代码中通过twinx()方法新建一个y轴对象,其对应的数据是“volume”这一列数据,而给y轴设置标签的方式也从前面的plt.ylabel()变成了ax.set_ylabel()。
6.给折线图添加图例
接下来给绘制好的折线图添加图例,不同的折线代表的是不同的数据。
代码如下:
#添加图例
ax1.legend([closingprice],loc=2,fontsize=12)
ax2.legend([volume],