You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为每个X值仅绘制对应的最大Y值,去除图表中的竖线

核心逻辑:先对原始数据按日期维度聚合,每个日期仅保留累计PnL的最大值,用聚合后的「单日期-最大PnL」一维映射关系绘图即可消除竖线。

不同工具实现方案

方案1:Python(Pandas + 可视化库)

  • 若Date列为字符串格式,先转换为datetime格式避免X轴排序混乱:
import pandas as pd
df['Date'] = pd.to_datetime(df['Date'])
  • 按日期分组取对应累计PnL的最大值,得到聚合数据集:
agg_df = df.groupby('Date', as_index=False)['Cumulative PnL'].max(skipna=True)
  • 用聚合后的数据集绘图即可,示例用matplotlib:
import matplotlib.pyplot as plt

plt.plot(agg_df['Date'], agg_df['Cumulative PnL'])
plt.xlabel('Date')
plt.ylabel('Cumulative PnL')
plt.show()

方案2:Excel

  • 提取所有不重复日期:选中原始Date列,点击「数据」选项卡→「删除重复值」,将去重后的日期单独存到空白列(假设为D列)
  • 用MAXIFS函数匹配每个日期对应的最大PnL:假设原始日期存储在A列,原始累计PnL存储在B列,D2为第一个去重日期,在E2单元格输入公式后下拉填充:
=MAXIFS(B:B,A:A,D2)
  • 选中D列和E列的聚合数据绘图即可。

方案3:R(dplyr + ggplot2)

  • 分组聚合+绘图代码示例:
library(dplyr)
library(ggplot2)

# 分组取最大值
agg_df <- df %>%
  group_by(Date) %>%
  summarise(max_cum_pnl = max(`Cumulative PnL`, na.rm = TRUE))

# 绘图
ggplot(agg_df, aes(x = Date, y = max_cum_pnl)) +
  geom_line() +
  labs(x = "Date", y = "Cumulative PnL")

内容的提问来源于stack exchange,提问作者Mo0rBy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 01:06:09