重要性★★★★☆

难度★★★☆☆

你是一家金融公司的数据分析师。你的经理要求你创建一个蜡烛图,以可视化一段时间内某公司的股票价格。

为此,你需要生成一个包含日期、开盘价、最高价、最低价和收盘价的股票价格数据集。

使用 Python 处理这些数据并创建蜡烛图。

确保图表正确标记且易于理解。

使用以下代码为这项任务生成样本数据。

【数据生成代码示例】

import pandas as pd
import numpy as np
import datetime
# 生成日期范围
dates = pd.date_range(start='2023-01-01', end='2023-01-10')
# 生成随机股票价格
np.random.seed(0)
data = {'Date': dates,
        'Open': np.random.randint(100, 200, size=len(dates)),
        'High': np.random.randint(200, 300, size=len(dates)),
        'Low': np.random.randint(50, 100, size=len(dates)),
        'Close': np.random.randint(100, 200, size=len(dates))}
# 创建 DataFrame
df = pd.DataFrame(data)
# 确保 'Date' 列是 datetime 类型
df['Date'] = pd.to_datetime(df['Date'])
# 打印 DataFrame
print(df)

【图表答案】

在这里插入图片描述

【代码答案】

import pandas as pd
import numpy as np
import datetime
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
from mplfinance.original_flavor import candlestick_ohlc
# 生成日期范围
dates = pd.date_range(start='2023-01-01', end='2023-01-10')
# 生成随机股票价格
np.random.seed(0)
data = {'Date': dates,
        'Open': np.random.randint(100, 200, size=len(dates)),
        'High': np.random.randint(200, 300, size=len(dates)),
        'Low': np.random.randint(50, 100, size=len(dates)),
        'Close': np.random.randint(100, 200, size=len(dates))}
# 创建 DataFrame
df = pd.DataFrame(data)
# 确保 'Date' 列是 datetime 类型
df['Date'] = pd.to_datetime(df['Date'])
# 将日期转换为 matplotlib 格式
df['Date'] = [mdates.date2num(date) for date in df['Date']]
# 准备蜡烛图数据
ohlc = df[['Date', 'Open', 'High', 'Low', 'Close']].values
# 创建图形和坐标轴
fig, ax = plt.subplots()
# 绘制蜡烛图
candlestick_ohlc(ax, ohlc, width=0.6, colorup='g', colordown='r')
# 设置标签和标题
ax.set_xlabel('日期')
ax.set_ylabel('价格')
ax.set_title('股票价格的蜡烛图')
# 格式化 x 轴以显示日期
ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m-%d'))
plt.xticks(rotation=45)
# 显示图表
plt.show()

在这里插入图片描述

为了创建股票价格的蜡烛图,我们首先需要生成一个包含日期、开盘价、最高价、最低价和收盘价的数据集。

使用 pandas 库创建日期范围,使用 numpy 生成随机股票价格。

然后创建一个 DataFrame 来保存这些数据,并确保 ‘Date’ 列是 datetime 类型。

生成数据后,我们将日期转换为适合与 matplotlib 绘图的格式。

使用 mplfinance 的 candlestick_ohlc 函数绘制蜡烛图。

我们设置图形和坐标轴用于绘图,然后使用 candlestick_ohlc 函数绘制数据。

添加标签和标题以便于理解,格式化 x 轴以正确显示日期。

最后,使用 plt.show() 显示图表。

【小知识】

  • 蜡烛图最早由 18 世纪的日本大米交易商使用。
  • 它在指定时间段内提供了价格走势的视觉表示,并且广泛用于金融市场的技术分析。
  • 每个蜡烛代表一个时间段(例如一天),并显示该期间的开盘价、最高价、最低价和收盘价。

更多推荐