图片报告样式调整

This commit is contained in:
workpc 2025-08-12 18:13:36 +08:00
parent 61ba82f177
commit af31fa2587
2 changed files with 15 additions and 7 deletions

View File

@ -930,7 +930,7 @@ def find_best_models(date='', global_config=None):
true_price_value = monthtrueprice
else:
true_price_value = true_price[true_price['ds']
== date]['y'].values[0]
== last_trading_day_str]['y'].values[0]
if not price.empty:
price.loc[:, 'trueprice'] = true_price_value
@ -963,7 +963,7 @@ def find_best_models(date='', global_config=None):
price = df[['data_date', wd, 'model_id']]
price = price[(price['data_date'] == ciridate)
| (price['data_date'] == date)]
trend = 1 if true_price[true_price['ds'] == date]['y'].values[0] - \
trend = 1 if true_price[true_price['ds'] == ciridate]['y'].values[0] - \
true_price[true_price['ds'] == ciridate]['y'].values[0] > 0 else -1
best_model_id, best_model_name = calculate_best_model(price, trend)
best_models[wd]['model_id'] = best_model_id
@ -987,11 +987,11 @@ def find_best_models(date='', global_config=None):
pd.Timedelta(days=7)).strftime('%Y-%m-%d')
global_config['logger'].info(f'计算预测{last_trading_day}的五天前{benzhoudate}最佳模型')
global_config['logger'].info(
f'{date}真实价格:{true_price[true_price["ds"] == date]["y"].values[0]}')
f'{date}真实价格:{true_price[true_price["ds"] == last_trading_day_str]["y"].values[0]}')
price = df[['data_date', wd, 'model_id']]
price = price[(price['data_date'] == benzhoudate)
| (price['data_date'] == date)]
trend = 1 if true_price[true_price['ds'] == date]['y'].values[0] - \
trend = 1 if true_price[true_price['ds'] == last_trading_day_str]['y'].values[0] - \
true_price[true_price['ds'] == benzhoudate]['y'].values[0] > 0 else -1
best_model_id, best_model_name = calculate_best_model(price, trend)
best_models[wd]['model_id'] = best_model_id
@ -1113,18 +1113,26 @@ def plot_pp_predict_result(y_hat, global_config,wd='yuedu'):
fig = plt.figure(figsize=(16, 22))
ax = fig.add_axes([0.05, 0.55, 0.9, 0.25]) # 16:9核心参数
# 添加网格线
ax.grid(True, linestyle='--', alpha=0.7)
# 对日期列进行排序,确保日期大的在右边
y_y_hat = y_y_hat.sort_values(by='ds')
y = y.sort_values(by='ds')
# 绘制 y_hat 的折线图,颜色为橙色
sns.lineplot(x=y_y_hat['ds'], y=y_y_hat['predictresult'],
color='orange', label='预测值', ax=ax, linestyle='--')
color='orange', label='预测值', ax=ax, linestyle='--', linewidth=2)
# 绘制散点图
sns.scatterplot(x=y_y_hat['ds'], y=y_y_hat['predictresult'],
color='orange', ax=ax, marker='o', s=100)
# 绘制 y 的折线图,颜色为蓝色
sns.lineplot(x=y['ds'], y=y['y'], color='blue', label='真实值', ax=ax)
# date_str = pd.Timestamp(y_hat["ds"].iloc[0]).strftime('%Y-%m-%d')
ax.set_title(f'{global_config["end_time"]} PP期货八大维度 预测价格走势', fontsize=24)
ax.set_title(f'{datetime.datetime.now().strftime("%Y-%m-%d")} PP期货十一大维度 预测价格走势', fontsize=24)
ax.set_xlabel('日期')
ax.set_ylabel('预测结果')
ax.tick_params(axis='x', rotation=45)

View File

@ -3577,7 +3577,7 @@ def pp_bdwd_png(global_config):
five_days_predict_price.rename(
columns={week_price_modelname: 'predictresult'}, inplace=True)
# 设置索引 次日 次二日 次三日 次四日 次五日
index_labels = ["次日", "次二日", "次三日", "次四", "次五"]
index_labels = ["当日", "次日", "次二日", "次三日", "次四"]
five_days_predict_price.index = index_labels
y_hat_riduzhoudu = pd.concat(
[y_hat_zhoudu, five_days_predict_price], axis=0)