文档详情

Python数据分析基础与应用电子活页7-36绘制折线图分析股票数据.docx

发布:2025-05-28约3.66千字共7页下载文档
文本预览下载声明

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],

显示全部
相似文档