你可以使用 Python 中的 matplotlib 库来绘制曲线。以下是一个示例代码,它会从给定的数据文件中读取数据并绘制两条曲线:一条表示时间与成交价的关系,另一条表示时间与手数的关系。
绘制攻略
详细步骤说明
指定文件路径:
使用原始字符串(以 r 开头)指定文件路径,确保正确处理反斜杠。
读取数据:
使用 pd.read_csv(file_path) 读取 CSV 文件中的数据。
转换时间格式:
使用 pd.to_datetime 将时间列转换为日期时间格式,确保在图表上正确显示时间。
创建绘图对象:
使用 matplotlib 创建绘图对象 fig 和主轴 ax1。
绘制成交价曲线:
设置 x 轴标签为时间,y 轴标签为成交价,并绘制成交价曲线,颜色为蓝色。
创建第二个 y 轴:
使用 ax1.twinx() 创建第二个 y 轴 ax2,用于绘制手数曲线,颜色为红色。
美化 x 轴时间格式:
使用 mdates.DateFormatter(‘%H:%M:%S’) 设置 x 轴时间格式,并自动调整日期标签。
添加标题和图例:
设置图表标题并添加图例,图例位置在左上角。
保存图表到文件:
使用 os.path.dirname(file_path) 获取文件所在目录。
使用 os.path.join(output_dir, ‘stock_details_600990_plot.png’) 指定输出文件路径。
使用 plt.savefig(output_file, format=‘png’) 保存图表。
显示图表:
使用 plt.show() 显示最终绘制的图表。
打印保存路径:
打印图表保存路径,方便确认图表已经保存。
通过以上步骤,你可以在 Jupyter Notebook 中从本地文件读取数据、绘制两条曲线并将图表保存到同一目录中。
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import os
# 从本地文件中读取数据
file_path = r'C:\data\...\20240515\stock_details_600990.csv' # 文件路径
df = pd.read_csv(file_path)
# 转换时间格式
df['时间'] = pd.to_datetime(df['时间'], format='%H:%M:%S')
# 创建绘图对象
fig, ax1 = plt.subplots()
# 绘制成交价曲线
ax1.set_xlabel('时间')
ax1.set_ylabel('成交价', color='tab:blue')
ax1.plot(df['时间'], df['成交价'], color='tab:blue', label='成交价')
ax1.tick_params(axis='y', labelcolor='tab:blue')
# 创建第二个 y 轴,共享同一个 x 轴
ax2 = ax1.twinx()
ax2.set_ylabel('手数', color='tab:red')
ax2.plot(df['时间'], df['手数'], color='tab:red', label='手数')
ax2.tick_params(axis='y', labelcolor='tab:red')
# 美化 x 轴时间格式
ax1.xaxis.set_major_formatter(mdates.DateFormatter('%H:%M:%S'))
fig.autofmt_xdate()
# 添加标题
plt.title('成交价和手数随时间的变化')
# 显示图例
fig.tight_layout()
fig.legend(loc='upper left', bbox_to_anchor=(0.1, 0.9))
# 保存图表到文件
output_dir = os.path.dirname(file_path)
output_file = os.path.join(output_dir,<