python数据可视化技巧的100个练习 -- 19. 股票价格的蜡烛图
·
重要性★★★★☆
难度★★★☆☆
你是一家金融公司的数据分析师。你的经理要求你创建一个蜡烛图,以可视化一段时间内某公司的股票价格。
为此,你需要生成一个包含日期、开盘价、最高价、最低价和收盘价的股票价格数据集。
使用 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 世纪的日本大米交易商使用。
- 它在指定时间段内提供了价格走势的视觉表示,并且广泛用于金融市场的技术分析。
- 每个蜡烛代表一个时间段(例如一天),并显示该期间的开盘价、最高价、最低价和收盘价。
更多推荐



所有评论(0)