如何在 Matplotlib 中创建 K 线图?
K 线图是可视化股票市场数据的一种常用方法。它们显示了特定时间段内股票或证券的开盘价、收盘价、最高价和最低价。K 线图由一系列垂直条形或“蜡烛”组成,其中每个蜡烛代表一个时间段。每个蜡烛的顶部和底部分别代表该期间内交易的最高价和最低价,而蜡烛的主体则代表开盘价和收盘价。
在本教程中,我们将探讨一些代码,我们将使用 Matplotlib(Python 中一个流行的数据可视化库)为一周的股票价格创建 K 线图。
我们将使用 Pandas 库创建一个表示股票价格的 DataFrame,然后使用 Matplotlib 的条形图函数绘制 K 线图。
要创建 K 线图,我们使用特定的语法,其中涉及在 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) The "up" dataframe contains the stock prices where the closing price is greater than or equal to the opening price. plt.bar(down.index, down.close - down.open, bottom=down.open, color) The "down" dataframe contains the stock prices where the closing price is less than the opening price.
示例:Matplotlib 中的 K 线图
现在让我们探讨下面显示的代码。此代码创建一个 K 线图,以使用 Python 中的 matplotlib 库表示一周内股票的开盘价、收盘价、最高价和最低价。
首先,创建一个 Pandas DataFrame 来存储一周的股票价格。然后,创建两个新的 DataFrame - “up” 存储收盘价大于或等于开盘价的股票价格,而 “down” 存储收盘价小于开盘价的股票价格。
接下来,定义 K 线图的颜色:“绿色”表示股票价格上涨,“红色”表示股票价格下跌。还设置了 K 线图元素的宽度。
然后,使用 plt.bar 方法在图表上绘制上涨和下跌的股票价格,其中 bottom 参数指定每个条形的起始点。将 x 轴刻度标签向右旋转 45 度,以提高可见度。最后,使用 plt.show() 对图表进行标题、x 轴标签、y 轴标签和显示。
import pandas as pd import matplotlib.pyplot as plt # Create a DataFrame to represent opening, closing, high, and low prices # of a stock for a week 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() # Create a new DataFrame called "up" that stores the stock_prices # when the closing stock price is greater than or equal to the opening stock price up = stock_prices[stock_prices.close >= stock_prices.open] # Create a new DataFrame called "down" that stores the stock_prices # when the closing stock price is lesser than the opening stock price down = stock_prices[stock_prices.close < stock_prices.open] # When the stock prices have decreased, then it # will be represented by red color candlestick col1 = 'red' # When the stock prices have increased, then it # will be represented by green color candlestick col2 = 'green' # Set the width of candlestick elements width = 0.4 width2 = 0.05 # Plot the up prices of the stock 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) # Plot the down prices of the stock 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) # Rotate the x-axis tick labels at 45 degrees towards right plt.xticks(rotation=45, ha='right') # Display the candlestick chart of stock data for a week plt.title('Stock Prices for a Week') plt.xlabel('Date') plt.ylabel('Price (USD)') plt.show()
输出
执行后,您将获得以下 K 线图
结论
总之,在 Matplotlib 中创建 K 线图可以成为可视化股票市场数据的强大工具。通过使用不同的颜色和宽度,还可以传达有关股票价格随时间变化的其他信息。通过遵循本教程中概述的步骤,您可以创建自己的 K 线图,并更深入地了解市场趋势和股票表现。