only陌伤 2024-07-25 17:11 采纳率: 0%
浏览 21
已结题

WPF如何用Chart绘画出Y轴的左边数据

WPF 如何绘画出下图这样的图形,,是需要同时显示 Y轴 的左边和右边的 曲线 有类似DEMO的可以追加费用

img

  • 写回答

28条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-07-25 17:11
    关注

    引自免费微信小程序:皆我百晓生

    要绘制您描述的热态电阻温升曲线图(图1),您可以使用WPF中的Chart控件。这里是一个简单的示例,展示了如何在WPF应用程序中创建一个包含上下两个图表区域的窗口,并且每个区域都有一个独立的Chart控件。

    步骤 1: 创建主窗体

    首先,在您的项目中添加一个新的WPF应用项目。然后,打开项目,将窗体定义为<Window>标签,并确保它有一个合适的标题。

    <Window x:Class="MyApplication.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="MainWindow" Height="350" Width="525">
    </Window>
    

    步骤 2: 添加上下两列的数据

    为了显示上下两个部分的数据,您需要创建一个Grid并将其放置在一个新的Canvas上。这样,您可以在其中添加两个Chart控件,并分别设置它们的X和Y轴。

    示例代码

    <Window x:Class="MyApplication.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
            xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
            mc:Ignorable="d"
            Title="MainWindow"
            Height="350"
            Width="525">
    
        <Grid>
            <Canvas HorizontalAlignment="Left" VerticalAlignment="Top">
                <!-- 上半部分 -->
                <Canvas Grid.Row="0" HorizontalAlignment="Left" VerticalAlignment="Top">
                    <!-- 第一列 -->
                    <Canvas Grid.Column="0" Height="Auto">
                        <!-- 绘制热态电阻R2的数据 -->
                        <Chart x:Name="chart1" Grid.Row="0" Height="150" Width="Auto" Margin="0,0,0,10" >
                            <Chart.Series>
                                <Series Name="Series1">
                                    <DataPoint x="1" y="1.3459"/>
                                    <DataPoint x="2" y="1.3284"/>
                                    <!-- 更多点... -->
                                </Series>
                            </Chart.Series>
    
                            <!-- 设置X轴标签和数值格式化器 -->
                            <Chart.Axis>
                                <Axis Name="XAxis" Minimum="-1" Maximum="12231" />
                                <Label Text="{Binding Path=X}" TextFormatString="{0:P0}°C" />
                            </Chart.Axis>
    
                            <!-- 设置Y轴标签和数值格式化器 -->
                            <Chart.Axis>
                                <Axis Name="YAxis" Minimum="-Infinity" Maximum="Infinity" />
                                <Label Text="{Binding Path=Y}" TextFormatString="{0:N0}" />
                            </Chart.Axis>
                        </Chart>
                    </Canvas>
    
                    <!-- 下半部分 -->
                    <Canvas Grid.Column="1" Height="Auto">
                        <!-- 绘制热态电阻R2的数据 -->
                        <Chart x:Name="chart2" Grid.Row="0" Height="150" Width="Auto" Margin="0,0,0,10" >
                            <Chart.Series>
                                <Series Name="Series2">
                                    <DataPoint x="1" y="1.3459"/>
                                    <DataPoint x="2" y="1.3284"/>
                                    <!-- 更多点... -->
                                </Series>
                            </Chart.Series>
    
                            <!-- 设置X轴标签和数值格式化器 -->
                            <Chart.Axis>
                                <Axis Name="XAxis" Minimum="-1" Maximum="12231" />
                                <Label Text="{Binding Path=X}" TextFormatString="{0:P0}°C" />
                            </Chart.Axis>
    
                            <!-- 设置Y轴标签和数值格式化器 -->
                            <Chart.Axis>
                                <Axis Name="YAxis" Minimum="-Infinity" Maximum="Infinity" />
                                <Label Text="{Binding Path=Y}" TextFormatString="{0:N0}" />
                            </Chart.Axis>
                        </Chart>
                    </Canvas>
                </Canvas>
    
                <!-- 下部按钮区 -->
                <Button Content="显示更多" Click="ShowMorePoints_Click" />
            </Canvas>
        </Grid>
    </Window>
    

    步骤 3: 添加更多数据点

    根据您的需求,可以在此基础上添加更多的数据点到各个Chart系列中。例如,如果您想增加更多的点,只需重复上述步骤并在适当的位置添加额外的DataPoint实例即可。

    这个例子仅展示了一个基本的框架,实际应用可能需要更复杂的布局、样式和行为控制。如果有特定的需求或要求,请告诉我,我可以进一步提供详细的代码示例。

    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 8月1日
  • 修改了问题 7月26日
  • 创建了问题 7月25日

悬赏问题

  • ¥20 需要帮我远程操控一下,运行一下我的那个代码,我觉得我无能为力了
  • ¥20 有偿:在ubuntu上安装arduino以及其常用库文件。
  • ¥15 请问用arcgis处理一些数据和图形,通常里面有一个根据点划泰森多边形的命令,直接划的弊端是只能执行一个完整的边界,但是我们有时候会用到需要在有很多边界内利用点来执行划泰森多边形的命令
  • ¥30 在wave2foam中执行setWaveField时遇到了如下的浮点异常问题,请问该如何解决呢?
  • ¥750 关于一道数论方面的问题,求解答!(关键词-数学方法)
  • ¥200 csgo2的viewmatrix值是否还有别的获取方式
  • ¥15 Stable Diffusion,用Ebsynth utility在视频选帧图重绘,第一步报错,蒙版和帧图没法生成,怎么处理啊
  • ¥15 请把下列每一行代码完整地读懂并注释出来
  • ¥15 寻找公式识别开发,自动识别整页文档、图像公式的软件
  • ¥15 为什么eclipse不能再下载了?