重要性★★★★☆难度★★★☆☆你是一家金融公司的数据分析师。你的经理要求你创建一个蜡烛图以可视化一段时间内某公司的股票价格。为此你需要生成一个包含日期、开盘价、最高价、最低价和收盘价的股票价格数据集。使用 Python 处理这些数据并创建蜡烛图。确保图表正确标记且易于理解。使用以下代码为这项任务生成样本数据。【数据生成代码示例】importpandasaspdimportnumpyasnpimportdatetime# 生成日期范围datespd.date_range(start2023-01-01,end2023-01-10)# 生成随机股票价格np.random.seed(0)data{Date:dates,Open:np.random.randint(100,200,sizelen(dates)),High:np.random.randint(200,300,sizelen(dates)),Low:np.random.randint(50,100,sizelen(dates)),Close:np.random.randint(100,200,sizelen(dates))}# 创建 DataFramedfpd.DataFrame(data)# 确保 Date 列是 datetime 类型df[Date]pd.to_datetime(df[Date])# 打印 DataFrameprint(df)【图表答案】【代码答案】importpandasaspdimportnumpyasnpimportdatetimeimportmatplotlib.pyplotaspltimportmatplotlib.datesasmdatesfrommplfinance.original_flavorimportcandlestick_ohlc# 生成日期范围datespd.date_range(start2023-01-01,end2023-01-10)# 生成随机股票价格np.random.seed(0)data{Date:dates,Open:np.random.randint(100,200,sizelen(dates)),High:np.random.randint(200,300,sizelen(dates)),Low:np.random.randint(50,100,sizelen(dates)),Close:np.random.randint(100,200,sizelen(dates))}# 创建 DataFramedfpd.DataFrame(data)# 确保 Date 列是 datetime 类型df[Date]pd.to_datetime(df[Date])# 将日期转换为 matplotlib 格式df[Date][mdates.date2num(date)fordateindf[Date]]# 准备蜡烛图数据ohlcdf[[Date,Open,High,Low,Close]].values# 创建图形和坐标轴fig,axplt.subplots()# 绘制蜡烛图candlestick_ohlc(ax,ohlc,width0.6,colorupg,colordownr)# 设置标签和标题ax.set_xlabel(日期)ax.set_ylabel(价格)ax.set_title(股票价格的蜡烛图)# 格式化 x 轴以显示日期ax.xaxis.set_major_formatter(mdates.DateFormatter(%Y-%m-%d))plt.xticks(rotation45)# 显示图表plt.show()为了创建股票价格的蜡烛图我们首先需要生成一个包含日期、开盘价、最高价、最低价和收盘价的数据集。使用 pandas 库创建日期范围使用 numpy 生成随机股票价格。然后创建一个 DataFrame 来保存这些数据并确保 ‘Date’ 列是 datetime 类型。生成数据后我们将日期转换为适合与 matplotlib 绘图的格式。使用 mplfinance 的 candlestick_ohlc 函数绘制蜡烛图。我们设置图形和坐标轴用于绘图然后使用 candlestick_ohlc 函数绘制数据。添加标签和标题以便于理解格式化 x 轴以正确显示日期。最后使用 plt.show() 显示图表。【小知识】蜡烛图最早由 18 世纪的日本大米交易商使用。它在指定时间段内提供了价格走势的视觉表示并且广泛用于金融市场的技术分析。每个蜡烛代表一个时间段例如一天并显示该期间的开盘价、最高价、最低价和收盘价。