统计性描述 print(df1.describe()) # 将日期转换为数字 df1['date'] = df1['date'].apply(lambda x: date2num(pd.to_datetime(x))) # 获取日期数据的最小值和最大值 date_min = mdates.date2num(df1['date'].min()) date_max = mdates.date2num(df1['date'].max()) # 绘制K线图 fig, ax = plt.subplots() ax.plot(df1['date'], df1['close'], label='Close') ax.plot(df1['date'], df1['open'], label='Open') ax.plot(df1['date'], df1['high'], label='High') ax.plot(df1['date'], df1['low'], label='Low') ax.legend() ax.set_xlabel('Date') ax.set_ylabel('Price') ax.set_title('坤彩科技') # 设置横轴的显示格式和间隔 #from matplotlib.dates import MonthLocator, DateFormatter #ax.xaxis.set_major_locator(MonthLocator()) # 设置横坐标主刻度为月份 #ax.xaxis.set_major_formatter(DateFormatter('%Y-%m')) # 设置刻度标签的格式为"年-月",可以根据需要进行修改 ax.xaxis.set_major_locator(YearLocator(base=1)) # 设置横坐标主刻度为年份 ax.xaxis.set_major_formatter(DateFormatter('%Y')) # 设置刻度标签的格式为"年" ax.xaxis.set_minor_locator(MonthLocator(bymonth=(3, 6, 9, 12))) # 设置横坐标次刻度为季度 ax.tick_params(axis='x', which='minor', labelsize=8, labelrotation=45) # 设置次刻度标签的大小和旋转角度 font = fm.FontProperties(size=10, style='italic') # 设置斜体字体属性 plt.xticks(fontproperties=font) # 设置刻度标签为斜体 plt.savefig('a1.jpg') # 保存图表 plt.show() # 显示图表 写一个循环,相同上述绘图,从1到14,同时每一个title为对应股票名字
时间: 2023-08-10 13:05:27 浏览: 87
DF1协议手册,英文版.pdf
好的,以下是代码实现:
```
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
from matplotlib.font_manager import FontProperties
# 读取股票数据
for i in range(1, 15):
df = pd.read_csv(f'stock{i}.csv', header=None, names=['date', 'open', 'high', 'low', 'close'])
# 将日期转换为数字
df['date'] = df['date'].apply(lambda x: mdates.date2num(pd.to_datetime(x)))
# 获取日期数据的最小值和最大值
date_min = mdates.date2num(df['date'].min())
date_max = mdates.date2num(df['date'].max())
# 绘制K线图
fig, ax = plt.subplots()
ax.plot(df['date'], df['close'], label='Close')
ax.plot(df['date'], df['open'], label='Open')
ax.plot(df['date'], df['high'], label='High')
ax.plot(df['date'], df['low'], label='Low')
ax.legend()
ax.set_xlabel('Date')
ax.set_ylabel('Price')
ax.set_title(f'Stock {i}')
# 设置横轴的显示格式和间隔
ax.xaxis.set_major_locator(mdates.YearLocator(base=1)) # 设置横坐标主刻度为年份
ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y')) # 设置刻度标签的格式为"年"
ax.xaxis.set_minor_locator(mdates.MonthLocator(bymonth=(3, 6, 9, 12))) # 设置横坐标次刻度为季度
ax.tick_params(axis='x', which='minor', labelsize=8, labelrotation=45) # 设置次刻度标签的大小和旋转角度
# 设置斜体字体属性
font = FontProperties(size=10, style='italic')
plt.xticks(fontproperties=font) # 设置刻度标签为斜体
plt.savefig(f'stock{i}.jpg') # 保存图表
plt.show() # 显示图表
```
这段代码会读取名为 `stock1.csv` 到 `stock14.csv` 的股票数据文件,每个文件必须包含五列数据:日期、开盘价、最高价、最低价和收盘价。然后循环遍历这些文件,分别绘制K线图并保存为对应的图片文件。每张图片的标题为对应的股票名字,即 "Stock 1" 到 "Stock 14"。
阅读全文