c# 如何使用实时图表反转 Y 轴

2023-12-07

我试图简单地反转 Y 轴,以便该图向上而不是向下。

从 6 开始,一直到 1。

这是关于倒置图的用户文档

https://lvcharts.net/App/examples/v1/wpf/Inverted%20Series

这是我用来构建图表的示例

https://lvcharts.net/App/examples/v1/wpf/Date%20Time

用户文档指出每个实时系列都有一个反向类,对于 LineSeries 类,它只是 VerticalLineSeries,我已将 DateTime 示例更改为该类。然而图表仍然从 1 到 6 向上。我缺少什么?

public partial class MainWindow : Window
{
    public Func<double, string> Formatter { get; set; }
    public SeriesCollection Series { get; set; }

    public MainWindow()
    {
        InitializeComponent();

        var dayConfig = Mappers.Xy<DateModel>()
            .X(dayModel => (double)dayModel.DateTime.Ticks / TimeSpan.FromHours(1).Ticks)
            .Y(dayModel => dayModel.Value);

        Series = new SeriesCollection(dayConfig)
        {
            new VerticalLineSeries
            {
                Values = new ChartValues<DateModel>
                {
                    new DateModel
                    {
                        DateTime = System.DateTime.Now,
                        Value = 6
                    },
                    new DateModel
                    {
                        DateTime = System.DateTime.Now.AddHours(1),
                        Value = 5
                    },
                    new DateModel
                    {
                        DateTime = System.DateTime.Now.AddHours(2),
                        Value = 4
                    },
                    new DateModel
                    {
                        DateTime = System.DateTime.Now.AddHours(3),
                        Value = 3
                    },
                    new DateModel
                    {
                        DateTime = System.DateTime.Now.AddHours(4),
                        Value = 2
                    },
                    new DateModel
                    {
                        DateTime = System.DateTime.Now.AddHours(5),
                        Value = 1
                    }
                },
                Fill = Brushes.Transparent
            }
        };

        Formatter = value => new System.DateTime((long)(value * TimeSpan.FromHours(1).Ticks)).ToString("t");

        DataContext = this;
    }
}

XAML

<Grid>
    <lvc:CartesianChart Series="{Binding Series}">
        <lvc:CartesianChart.AxisX>
            <lvc:Axis LabelFormatter="{Binding Formatter}"></lvc:Axis>
        </lvc:CartesianChart.AxisX>
    </lvc:CartesianChart>
</Grid>

生成下图

enter image description here


为了简单起见,我将使用负负值,然后格式化标签:

<lvc:CartesianChart>
        <lvc:CartesianChart.Series>
            <lvc:LineSeries Values="{Binding Values}"></lvc:LineSeries>
        </lvc:CartesianChart.Series>
        <lvc:CartesianChart.AxisY>
            <lvc:Axis MinValue="-10" MaxValue="-1" LabelFormatter="{Binding Formatter}">
                <lvc:Axis.Separator>
                    <!--to force the display of all the labels all the time
                    lets force the step-->
                    <lvc:Separator Step="1"></lvc:Separator>
                </lvc:Axis.Separator>
            </lvc:Axis>
        </lvc:CartesianChart.AxisY>
    </lvc:CartesianChart>

背后代码:

Values = new ChartValues<double>
        {
            -1,
            -2,
            -3,
            -4,
            -5,
            -6,
            -7,
            -8,
            -9
        };

Formatter = x => x*-1 + " place";

Edit

上一个选项是这个问题的具体解决方案,要反转轴,您需要:

 var invertedYMapper = LiveCharts.Configurations.Mappers.Xy<ObservablePoint>()
            .X(point => point.X)
            .Y(point => -point.Y);

        var lineSeries = new LineSeries
        {
            Values = new ChartValues<ObservablePoint>
                {
                    new ObservablePoint(0,2),
                    new ObservablePoint(1,5),
                    new ObservablePoint(2,7)
                }
        };

        // set the inverted mapping...
        lineSeries.Configuration = invertedYMapper;

        var seriesCollection = new SeriesCollection
        {
            lineSeries
        };

        // correct the labels
        var YAxis = new Axis
        {
            LabelFormatter = x => (x * -1).ToString()
        };
        cartesianChart1.AxisY.Add(YAxis);

        cartesianChart1.Series = seriesCollection;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

c# 如何使用实时图表反转 Y 轴 的相关文章

  • WPF DataGrid 多选

    我读过几篇关于这个主题的文章 但很多都是来自 VS 或框架的早期版本 我想做的是从 dataGrid 中选择多行并将这些行返回到绑定的可观察集合中 我尝试创建一个属性 类型 并将其添加到可观察集合中 它适用于单个记录 但代码永远不会触发多个
  • 在 xaml 中编写嵌套类型时出现设计时错误

    我创建了一个用户控件 它接受枚举类型并将该枚举的值分配给该用户控件中的 ComboBox 控件 很简单 我在数据模板中使用此用户控件 当出现嵌套类型时 问题就来了 我使用这个符号来指定 EnumType x Type myNamespace
  • 为什么 GCC 不允许我创建“内联静态 std::stringstream”?

    我将直接前往 MCVE include
  • 传递给函数时多维数组的指针类型是什么? [复制]

    这个问题在这里已经有答案了 我在大学课堂上学习了 C 语言和指针 除了多维数组和指针之间的相似性之外 我认为我已经很好地掌握了这个概念 我认为由于所有数组 甚至多维 都存储在连续内存中 因此您可以安全地将其转换为int 假设给定的数组是in
  • -webkit-box-shadow 与 QtWebKit 模糊?

    当时有什么方法可以实现 webkit box shadow 的工作模糊吗 看完这篇评论错误报告 https bugs webkit org show bug cgi id 23291 我认识到这仍然是一个问题 尽管错误报告被标记为RESOL
  • 如何连接重叠的圆圈?

    我想在视觉上连接两个重叠的圆圈 以便 becomes 我已经有部分圆的方法 但现在我需要知道每个圆的重叠角度有多大 但我不知道该怎么做 有人有主意吗 Phi ArcTan Sqrt 4 R 2 d 2 d HTH Edit 对于两个不同的半
  • 访问外部窗口句柄

    我当前正在处理的程序有问题 这是由于 vista Windows 7 中增强的安全性引起的 特别是 UIPI 它阻止完整性级别较低的窗口与较高完整性级别的窗口 对话 就我而言 我想告诉具有高完整性级别的窗口进入我们的应用程序 它在 XP 或
  • WcfSvcHost 的跨域异常

    对于另一个跨域问题 我深表歉意 我一整天都在与这个问题作斗争 现在已经到了沸腾的地步 我有一个 Silverlight 应用程序项目 SLApp1 一个用于托管 Silverlight SLApp1 Web 的 Web 项目和 WCF 项目
  • 为什么这个字符串用AesCryptoServiceProvider第二次解密时不相等?

    我在 C VS2012 NET 4 5 中的文本加密和解密方面遇到问题 具体来说 当我加密并随后解密字符串时 输出与输入不同 然而 奇怪的是 如果我复制加密的输出并将其硬编码为字符串文字 解密就会起作用 以下代码示例说明了该问题 我究竟做错
  • C# xml序列化必填字段

    我需要将一些字段标记为需要写入 XML 文件 但没有成功 我有一个包含约 30 个属性的配置类 这就是为什么我不能像这样封装所有属性 public string SomeProp get return someProp set if som
  • 实例化类时重写虚拟方法

    我有一个带有一些虚函数的类 让我们假设这是其中之一 public class AClassWhatever protected virtual string DoAThingToAString string inputString retu
  • 如何在当前 Visual Studio 主机内的 Visual Studio 扩展中调试使用 Roslyn 编译的代码?

    我有一个 Visual Studio 扩展 它使用 Roslyn 获取当前打开的解决方案中的项目 编译它并从中运行方法 程序员可以修改该项目 我已从当前 VisualStudioWorkspace 成功编译了 Visual Studio 扩
  • 编译时展开 for 循环内的模板参数?

    维基百科 here http en wikipedia org wiki Template metaprogramming Compile time code optimization 给出了 for 循环的编译时展开 我想知道我们是否可以
  • C++ 继承的内存布局

    如果我有两个类 一个类继承另一个类 并且子类仅包含函数 那么这两个类的内存布局是否相同 e g class Base int a b c class Derived public Base only functions 我读过编译器无法对数
  • 为什么 std::uint32_t 与 uint32_t 不同?

    我对 C 有点陌生 我有一个编码作业 很多文件已经完成 但我注意到 VS2012 似乎有以下语句的问题 typedef std uint32 t identifier 不过 似乎将其更改为 typedef uint32 t identifi
  • C# 使用“?” if else 语句设置值这叫什么

    嘿 我刚刚看到以下声明 return name null name NA 我只是想知道这在 NET 中叫什么 是吗 代表即然后执行此操作 这是一个俗称的 条件运算符 三元运算符 http en wikipedia org wiki Tern
  • 指针和内存范围

    我已经用 C 语言编程有一段时间了 但对 C 语言还是很陌生 有时我对 C 处理内存的方式感到困惑 考虑以下有效的 C 代码片段 const char string void where is this pointer variable l
  • 类型或命名空间“MyNamespace”不存在等

    我有通常的类型或命名空间名称不存在错误 除了我引用了程序集 using 语句没有显示为不正确 并且我引用的类是公共的 事实上 我在不同的解决方案中引用并使用相同的程序集来执行相同的操作 并且效果很好 顺便说一句 这是VS2010 有人有什么
  • 现代编译器是否优化乘以 1 和 -1

    如果我写 template
  • 从 mvc 控制器使用 Web api 控制器操作

    我有两个控制器 一个mvc控制器和一个api控制器 它们都在同一个项目中 HomeController Controller DataController ApiController 如果我想从 HomeController 中使用 Dat

随机推荐

  • 隐式定义的变量会引发运行时错误,而显式定义的变量则不会

    使用 VB NET 我尝试按照 ReSharper 的指南清理代码库 我目前有以下代码 oSearchInput is defined outside this question Dim oSearchRoutines As New Sea
  • 我想在java小程序中使用Robot类来让Web浏览器移动和单击鼠标

    我创建了这个小程序 它将鼠标移动到屏幕上的 1000 个位置 它可以作为应用程序运行 但不能在小程序中运行 我已经创建了签名小程序 但它仍然不会移动鼠标 我应该怎么做才能让我的机器人类在浏览器中工作 我的代码如下 import java a
  • 为什么我不能创建一个大小由全局变量确定的数组?

    为什么数组a没有被全局变量初始化size include
  • jqGrid:子网格不填充数据

    我有一个子网格 当您单击 Cheese 旁边的 号时 会触发 ajax 查询 并且我会看到子网格列名称 但实际数据不会填充到子网格中 无论我尝试扩展哪个网格 问题都会发生 但 奶酪 示例如下所示 您可以在屏幕截图中 FireBug 输出的底
  • 在 ASP.NET MVC 中匹配跨多个“/”的 URL 参数

    在 ASP NET MVC 中匹配跨多个 的 URL 参数的最佳方法是什么 Eg URL http example com controller action p1 p2 p3 p4 我只想将一个参数传递给操作方法 上面是 p1 p2 p3
  • scapy 数据包操作和原始 pkt.time

    我有 python scapy 和平代码将我的数据存储到数据库中 IP src 和 dst 端口 我用它来进行一些统计 在某些数据包上 我正在执行一些操作 更改目标端口 然后将它们发送回接口 问题是我正在操作的这个数据包具有与原始数据包不同
  • 如何在nodejs中使用getRandomValues()?

    我正在使用 Javascript 生成wireguard 密钥对 但它是面向浏览器的 因此我删除了窗口对象 并且还有一个阻止创建私钥的问题 问题是这行代码我无法在nodejs中运行 function generatePresharedKey
  • BigQuery 试运行会返回什么?

    BigQuery 文档说 在表的较小分区而不是一个大表上测试查询 如果使用 API 请验证查询的语法并使用 dryRun 标志获取数据处理统计信息 但他们也表示 对于 dryRun 如果设置 则不会实际运行查询 有效的查询将返回空响应 而无
  • 调用 GBrowserIsCompatible() 时 Google 地图 API JavaScript 错误

    我在以下行中收到错误 if GBrowserIsCompatible 这是我的代码仍然无法工作
  • 尝试将 SELECT SCOPE_IDENTITY() 作为 C# 变量

    我正在一个表中插入一行 然后想要获取该新 ID 以便我可以将其添加到存储电子邮件地址的另一个变量中 var db Database Open myDB var insertCommand1 INSERT INTO myDB FirstNam
  • 寻找指南针 2 度之间最接近的差异 - Javascript

    我基本上是想找出指南针上两个点相距多少度 例如 如果一个人面朝 270 度 而指南针为 280 度 那么这两点之间就有 10 度 如果相对于第一个标题 它在左侧 我还想要一个负数 在右侧则为正数 例如 当 to 标题为 350 和 020
  • 防止选择和复制

    我想在 html 页面中不活动选择和复制文本 当我使用 Javascript 且处于非活动状态时 右键单击用户可以使用 Ctrl V 你不能 甚至不要尝试 不要惹恼你的用户 如果您将其公开发布在网络上 则可以复制 从技术上讲 用户一看到它就
  • 如何使用 Spring AOP 和 SPring boot 进行日志记录

    我使用与本示例教程中相同的 LoggingAspect 类https www javaguides net 2019 05 spring boot spring aop logging example tutorial html 但是当我调
  • 困惑为什么 PyGame 显示黑屏

    因此 在我决定问这个问题之前 我做了一些研究 看看我的问题是什么 并发现了这一点 代码仅在 Pygame 窗口中产生黑屏然而 这并不是那么有帮助 因为我没有遇到与此人相同的问题 我确信我的 PyGame 没有过时或类似的东西 因为我的代码的
  • 添加程序集引用还需要引用基础程序集

    我创建了一个程序集 该程序集有一个子类 该子类派生自另一个程序集中定义的父类 当我添加对子项的引用时 Visual Studio 还要求将引用添加到父项 为什么会这样 如何在不丢失任何功能的情况下防止它 你所描述的情况是部分可能的 您可以消
  • 渐变动画 - 减速和加速

    我正在制作一个动画CAGradientLayer 类似于苹果在 iPhone 主屏幕上使用 滑动解锁 动画的方式 然而我的动画有点不同 它在某些点会减慢和加速 到目前为止 我的代码是一个渐变动画并且可以工作 但是我如何让它在不同的点减慢 加
  • IBM Worklight - 无法使用现有别名注册到事件源回调。该别名已用于事件源

    我正在使用 IBM Worklight 6 0 0 并在 iOS 7 设备上进行测试 我有以下js错误 Cannot register to event source callback with an existing alias myPu
  • [function.fopen]:打开流失败:HTTP 请求失败! HTTP/1.1 401 未经授权

    function fopen 打开流失败 HTTP 请求失败 HTTP 1 1 401 未经授权 我定期收到此错误 即它仅在随机时间发生 任何想法会导致此错误 我已检查我的 php ini 并将allow url fopen 设置为 tru
  • 将 SQL 数据读取器数据加载到 DataTable 时遇到问题

    string query select from cfo daily trans hist try using SqlConnection connection new SqlConnection cnnString SqlCommand
  • c# 如何使用实时图表反转 Y 轴

    我试图简单地反转 Y 轴 以便该图向上而不是向下 从 6 开始 一直到 1 这是关于倒置图的用户文档 https lvcharts net App examples v1 wpf Inverted 20Series 这是我用来构建图表的示例