国外课栈 - 国外电子信息技术视角栈

透视Matplotlib【深阅篇】

 二维码 21
文章附图

结构 | 基础绘图 | 多绘 | 可视化开发 | 面向对象API | 高级特征绘制 | 文本和数学表达式 | 不同图形格式 | GUI中嵌入图 | 交互式图形开发 | 绘制3D图形 | 工具包


一张图片含有一千个单词,数据的可视化在寻找数据中的隐藏模式方面起着至关重要的作用。 在一段时间内,已开发出各种图形来表示不同类型变量之间的不同关系。在此,我们将看到如何在不同的上下文中使用这些不同的图以及如何使用Matplotlib绘制它们。

折线图

折线图用于表示两个连续变量之间的关系。 它通常用于表示随时间变化的趋势,例如季度和年度的GDP增长率,通货膨胀,利率和股票价格。

我们将使用Google股票价格数据绘制时间序列线图。 我们将数据(日期和每日收盘价,用逗号分隔)保存在不带标题的.csv文件中,因此我们将使用pandas库读取数据并将其传递给matplotlib.pyplot函数以绘制图形。

  • 导入所需库文件:

import matplotlib.pyplot as plt

import pandas as pd

  • 将Google股票价格文件(日期和价格)加载到x,y坐标中:

stock = pd.read_csv('GOOG.csv', header=None, delimiter=',')

  • 添加列名

stock.columns = ['date','price']

  • 将pandas DataFrame转换为时间序列:

stock['date'] = pd.to_datetime(stock['date'], format='%d-%m-%Y')

  • 将日期设置为pandas DataFrame的索引:

indexed_stock = stock.set_index('date') ts = indexed_stock['price']

  • 绘制图形

plt.plot(ts)

  • 显示图形

plt.show()

分解代码

  • pd.read_csv()函数指定以下内容:

    • header = None,输入文件没有标题

    • delimiter =',',日期和价格用逗号(,)分隔

    • 将数据读入库存DataFrame


  • stock.columns命令为股票DataFrame中的每个属性,日期和价格分配名称。

  • pd.to_datetime()函数将日期从字符格式转换为日期时间格式。 格式:%d-%m-%Y参数指定输入文件中日期的格式。

  • stock.set_index()将date列设置为索引,以便price列可以表示时间序列数据,plot命令可以理解。

下图是您应该从前面的代码块获得的输出:

除了可以从.csv或.xlsx文件中读取Google股票价格数据之外,还有一些标准API(例如fix_yahoo_finance,pandas_datareader)可以直接从打开的数据库中读取数据。

注意:标准API经常更改,有时数据库网站没有响应。 您需要在计算机上安装这些API,因为它们不是标准的Python发行版附带的。

在这里,我们将展示一个使用fix_yahoo_finance的示例:

  • 导入所需库文件:

import matplotlib.pyplot as plt

import pandas as pd

import fix_yahoo_finance as yf


  • 下载2017年10月1日至2018年1月1日的苹果每日收盘价:

data = yf.download('AAPL','2017-10-01','2018-01-01')

  • 按日期绘制收盘价(Close)。 请注意,这里的date是默认的x轴,因为yf.download创建带有日期索引的数据。 因此,我们不需要为绘图提供x轴坐标。 请注意,这里我们使用的是pandas的plot()命令,而不是Matplotlib:

data.Close.plot()

  • 显示图形

plt.show()

图形结果如下所示:


阅读完整文档