c# - c#图表y轴统一缩放
问题描述
我正在使用一种设备,它接收 4-20MA 的压力读数,将其转换为电压并在一定范围内进行缩放,然后将数据绘制成实时的折线图。我正在缩放 y 轴,并有按钮在运行时根据需要的范围调整 y 轴比例。所以换句话说,如果压力从 0 psi 开始,然后一直跳到 20,000,我希望图表显示 -100(最小 - 只有这样,如果 PSI 为 0,它是可见的)到 0、100、200, ..., 19800, 19900, 20000。但是,如果压力为 19743,则比例为“-43, 43, 143, ..., 19843, 19943” 之类的。有没有办法改变这种情况,所以它只计算“整百”之类的?
我的 y 轴间隔跳动 50 秒,因此轴可以移动 0、50、100、...或 0、100、200 等(如果需要,可以一次跳动 500 psi)。但我只想让 y 轴数字显示整百个,如果这有意义的话。
我的最大 y 值是最大输入值(我正在比较 3 个输入值)并将 1,000 添加到该值。因此,如果当前最大压力为 19,000 psi,图表应显示 -100 到 20,0000。
我对传入值的比较 - 名称是“RawIn#”,但这些已经被缩放。不好的变量命名,我知道。
if (rawIn0 > rawIn1)
{
maxY = Convert.ToInt32(rawIn0);
}
else if (rawIn1 > rawIn0)
{
maxY = Convert.ToInt32(rawIn1);
}
if (maxY < rawIn2)
{
maxY = Convert.ToInt32(rawIn2);
}
if (maxY > absoluteMaxY)
{
absoluteMaxY = maxY;
}
if (rawIn0 > rawIn1)
{
minY = Convert.ToInt32(rawIn1);
}
else if (rawIn1 > rawIn0)
{
minY = Convert.ToInt32(rawIn0);
}
if (minY > rawIn2)
{
minY = Convert.ToInt32(rawIn2);
}
我正在缩放图表的当前方式。MinY 始终为 0。因此最小值 = -100。
chart1.ChartAreas[0].AxisY.Maximum = absoluteMaxY + 1000;
chart1.ChartAreas[0].AxisY.Minimum = minY - 100;
我的按钮在运行时增加和减少间隔。// 间隔越高,越容易看到 y 轴线越少的整个图表。
private void yValueSizeInc_Click(object sender, EventArgs e)
{
if (chart1.ChartAreas[0].AxisY.Interval < 50)
{
chart1.ChartAreas[0].AxisY.Interval = 50;
}
else
{
chart1.ChartAreas[0].AxisY.Interval += 50;
}
Properties.Settings.Default.pressureInterval =
(int)chart1.ChartAreas[0].AxisY.Interval;
yValueSize.Text = chart1.ChartAreas[0].AxisY.Interval.ToString();
}
private void yValueSizeDec_Click(object sender, EventArgs e)
{
if (chart1.ChartAreas[0].AxisY.Interval <= 50)
{
chart1.ChartAreas[0].AxisY.Interval = 50;
}
else
{
chart1.ChartAreas[0].AxisY.Interval -= 50;
}
Properties.Settings.Default.pressureInterval = (int)
chart1.ChartAreas[0].AxisY.Interval;
yValueSize.Text = chart1.ChartAreas[0].AxisY.Interval.ToString();
}
解决方案
推荐阅读
- xamarin.android - 如何在 Xamarin 中获取媒体文件的专辑封面?
- .net - GRPC - 为什么`CallInvoker`需要强加`TRequest:class`和`TResponse:class`?
- python - 如何从“on_failure_callback”函数推送 xcom 变量并在另一个任务中提取相同的变量
- angular - 如何上传 CSV 并使用 UTF-8 编码显示?
- r - R:如何将字符串变量插入向量
- blazor-server-side - Blazor:如何在 Program.cs 中获取 IConfiguration?
- swagger - OpenAPI 生成器中的错误?日期数据类型的示例值格式错误
- c# - 如何对字段进行分组并以更快的方式检查某些条件
- c++ - 声明一个数组,使地址在 16 字节边界上对齐
- javascript - 如何在 HTML 中包含 Processing.js 代码