Windows Form Chart柱状图按盈亏值设置颜色问题求助
问题分析与修正代码
你的代码存在三个核心问题:
- 循环变量命名混淆:你遍历的是单个数据点,却用了
$series作为变量名,容易和图表系列(Series)混淆 - 数值判断逻辑错误:直接拿数据点对象和0比较不成立,需要取数据点的Y轴数值进行判断
- 颜色设置对象错误:你一直在修改整个系列的颜色,而非单个柱子对应的数据点颜色
修正后的代码:
Clear-Chart $chart1 $script:csv = Import-Csv -Path "C:\testpath\AutoBotStatsCollected.csv" update-Chart $chart1 -XPoints $csv.'Market' -YPoints $csv.'Daily Profit/Loss' $points = $Chart1.Series[0].Points # 遍历每个数据点,逐个设置颜色 foreach ($point in $points) { # 取出当前数据点的Y轴数值(每日盈亏) $profitLoss = $point.YValues[0] if ($profitLoss -lt 0) { $point.Color = 'Blue' # 亏损柱子设为蓝色 } else { $point.Color = 'Crimson' # 盈利柱子设为深红色 } }
代码说明:
- 将循环变量改为
$point,明确指代单个数据点 - 通过
$point.YValues[0]获取该柱子对应的每日盈亏数值,再和0比较 - 直接修改
$point.Color为当前数据点设置颜色,而非整个系列
内容的提问来源于stack exchange,提问作者iceman
相关产品推荐
相关产品推荐

