如何在 Matplotlib 中创建烛台图?

matplotlibpythondata visualization

烛台图是一种可视化股票市场数据的流行方式。它们显示给定时间段内股票或证券的开盘价、收盘价、最高价和最低价。烛台图由一系列垂直条或"烛台"组成,其中每个烛台代表一个时间段。每个烛台的顶部和底部代表该期间交易的最高价和最低价,而烛台的主体代表开盘价和收盘价。

在本教程中,我们将探索使用 Matplotlib(Python 中流行的数据可视化库)创建一周股票价格烛台图的代码。

我们将使用 Pandas 库创建一个表示股票价格的 DataFrame,然后使用 Matplotlib 的条形图函数绘制烛台。

要创建烛台图,我们使用一种特定的语法,该语法涉及使用 Matplotlib 中的 plt.bar 方法。

plt.bar 创建条形图

plt.bar 是 Matplotlib 库中的一个函数,可用于在 Python 中创建条形图。它需要几个参数,包括 x 轴值、y 轴值、条形宽度和条形颜色。您可以使用此函数创建水平和垂直条形图,并且可以自定义条形的外观以满足您的需求。

以下是 plt.bar 的语法。

plt.bar(up.index,up.close-up.open,bottom=up.open,color)
"up"数据框包含收盘价大于或等于开盘价的股票价格。

plt.bar(down.index, down.close - down.open, bottom=down.open, color)
"down"数据框包含收盘价低于开盘价的股票价格。

示例:Matplotlib 中的蜡烛图

现在让我们探索下面显示的代码。此代码使用 Python 中的 matplotlib 库创建一个蜡烛图来表示股票一周的开盘价、收盘价、最高价和最低价。

首先,创建一个 Pandas DataFrame 来存储本周的股票价格。然后,创建两个新的 DataFrame - "up"存储收盘价大于或等于开盘价的股票价格,"down"存储收盘价低于开盘价的股票价格。

接下来,定义蜡烛的颜色:"绿色"表示股价上涨,"红色"表示股价下跌。还设置了烛台元素的宽度。

然后,使用 plt.bar 方法在图表上绘制股价上涨和下跌,其中底部参数指定每个条形图的起点。x 轴刻度标签向右旋转 45 度,以获得更好的可视性。最​​后,为图表添加标题、x 标签、y 标签,并使用 plt.show() 显示。

import pandas as pd
import matplotlib.pyplot as plt

# 创建一个 DataFrame 来表示股票一周的开盘价、收盘价、最高价和最低价
#
stock_prices = pd.DataFrame({'open': [60, 70, 80, 90, 100, 110, 120],
   'close': [55, 85, 75, 100, 95, 120, 105],
   'high': [70, 95, 85, 110, 105, 120, 125],
   'low': [50, 60, 70, 80, 85, 105, 100]},
   index=pd.date_range("2023-04-01", periods=7, freq="d"))

plt.figure()

# 创建一个名为"up"的新 DataFrame,用于存储 stock_prices
# 当收盘价大于或等于开盘价时
up = stock_prices[stock_prices.close >= stock_prices.open]

# 创建一个名为"down"的新 DataFrame,用于存储 stock_prices
# 当收盘价小于开盘价时
down = stock_prices[stock_prices.close < stock_prices.open]

# 当股价下跌时,将用红色烛台表示

# 当股价上涨时,将用绿色烛台表示

col2 = 'green'

# 设置烛台元素的宽度
width = 0.4
width2 = 0.05

# 绘制股票上涨价格
plt.bar(up.index, up.close-up.open, width, bottom=up.open, color=col2)
plt.bar(up.index, up.high-up.close, width2, bottom=up.close, color=col2)
plt.bar(up.index, up.low-up.open, width2, bottom=up.open, color=col2)

# 绘制股票下跌价格
plt.bar(down.index, down.close-down.open, width, bottom=down.open, color=col1)
plt.bar(down.index, down.high-down.open, width2, bottom=down.open, color=col1)
plt.bar(down.index, down.low-down.close, width2, bottom=down.close, color=col1)

# 将 x 轴刻度标签向右旋转 45 度
plt.xticks(rotation=45, ha='right')

# 显示一周股票数据的烛台图
plt.title('一周股票价格')
plt.xlabel('日期')
plt.ylabel('价格 (USD)')
plt.show()

输出

执行后,您将获得以下烛台图:

结论

总之,在 Matplotlib 中创建烛台图可以成为可视化股票市场数据的强大工具。通过使用不同的颜色和宽度,还可以传达有关股票价格随时间变化的更多信息。按照本教程中概述的步骤,您可以创建自己的烛台图并深入了解市场趋势和股票表现。


相关文章