c# chart缩放,局部放大问题

news/2024/11/14 13:06:55/文章来源:https://www.cnblogs.com/dzjl/p/18336230

左键划选放大区域,右键恢复

        /// <summary>
        /// 初始化,传入要进行初始化的chart
        /// </summary>
        /// <param name="chart1"></param>
        public static void InitChart (System.Windows.Forms.DataVisualization.Charting.Chart chart1)
        {
            //开启缩放功能
            chart1.ChartAreas[0].CursorX.Interval = 0;
            chart1.ChartAreas[0].CursorX.IsUserEnabled = true;
            chart1.ChartAreas[0].CursorX.IsUserSelectionEnabled = true;
            chart1.MouseClick += new System.Windows.Forms.MouseEventHandler(chart_MouseClick);
        }
 
        //右键恢复缩放
        static void chart_MouseClick(object sender, MouseEventArgs e)
        {
            Chart chart1 = sender as Chart;
            //右键恢复事件
            if (e.Button == MouseButtons.Right)
            {
                chart1.ChartAreas[0].AxisX.ScaleView.ZoomReset(0);
            }
        }

放大 仅针对x轴(y轴同理)

chartArea1.CursorX.IsUserEnabled = true;
chartArea1.CursorX.IsUserSelectionEnabled = true;

缩小

chart1.ChartAreas[0].AxisX.ScaleView.ZoomReset();
  • ZoomReset(0); —— 撤销所有放大动作
  • ZoomReset(1); —— 撤销上一次放大动作

设置滚动条宽度

chart1.ChartAreas[0].AxisX.ScrollBar.Size = 5;

获取选区坐标

Console.WriteLine(chart1.ChartAreas[0].AxisX.ScaleView.ViewMinimum);//当前显示范围最小坐标
Console.WriteLine(chart1.ChartAreas[0].AxisX.ScaleView.ViewMaximum);//当前显示范围最大坐标

c# chart表格

  • series1属性中XAxisType属性值设置为:Primary
  • series2属性中XAxisType属性值设置为:Secondary          

添加series会导致图表预览不可用

设置间隔与小数点

网格刻度

 #region 表格参数设置//ChartArea chartArea = chart1.ChartAreas[0];//表格标题内容Title title = new Title();title.Font = new System.Drawing.Font("宋体", 12F);title.Text = "压机曲线波动分析";chart1.Titles.Add(title);//设置坐标轴标题chart1.ChartAreas[0].AxisX.Title = "位 移 / mm ";chart1.ChartAreas[0].AxisY.Title = "压  力 / Kg ";//X,Y轴的最大值最小值chart1.ChartAreas[0].AxisX.Minimum = 0;chart1.ChartAreas[0].AxisX.Maximum = 100;chart1.ChartAreas[0].AxisY.Minimum = 0;chart1.ChartAreas[0].AxisY.Maximum = 200;// 设置X,Y的坐标间距chart1.ChartAreas[0].AxisX.Interval = 1;chart1.ChartAreas[0].AxisY.Interval = 5;//设置坐标轴标题的字体chart1.ChartAreas[0].AxisX.TitleFont = new System.Drawing.Font("宋体", 12F);chart1.ChartAreas[0].AxisY.TitleFont = new System.Drawing.Font("宋体", 12F);//设置坐标轴栅格是否可见chart1.ChartAreas[0].AxisX.MajorGrid.Enabled = true;chart1.ChartAreas[0].AxisY.MajorGrid.Enabled = true;//设置网格线  chart1.ChartAreas[0].AxisX.MajorGrid.LineColor = System.Drawing.Color.Gainsboro;   //颜色chart1.ChartAreas[0].AxisX.MajorGrid.Interval = 10;                 //网格间隔chart1.ChartAreas[0].AxisX.MinorGrid.Interval = 10;chart1.ChartAreas[0].AxisY.MajorGrid.LineColor = System.Drawing.Color.Gainsboro;chart1.ChartAreas[0].AxisY.MajorGrid.Interval = 20;chart1.ChartAreas[0].AxisY.MinorGrid.Interval = 20;放大表格chart1.ChartAreas[0].AxisX.ScaleView.Zoom(2, 3);chart1.ChartAreas[0].AxisX.ScaleView.Zoomable = false;chart1.ChartAreas[0].AxisX.ScaleView.Size = 20;Zoom into the X axisEnable range selection and zooming end user interfacechart1.ChartAreas[0].CursorX.IsUserEnabled = true;chart1.ChartAreas[0].CursorX.IsUserSelectionEnabled = true;chart1.ChartAreas[0].AxisX.ScaleView.Zoomable = true;//将滚动内嵌到坐标轴中chart1.ChartAreas[0].AxisX.ScrollBar.IsPositionedInside = true;chart1.ChartAreas[0].AxisY.ScrollBar.IsPositionedInside = true;#endregion#region 各个曲线参数设置//曲线类型chart1.Series[0].ChartType = SeriesChartType.Spline;chart1.Series[1].ChartType = SeriesChartType.Spline;chart1.Series[10].ChartType = SeriesChartType.Spline;// 曲线 线宽像素chart1.Series[0].BorderWidth = 1;chart1.Series[1].BorderWidth = 1;chart1.Series[10].BorderWidth = 3;// 曲线的颜色chart1.Series[10].Color = System.Drawing.Color.Red;chart1.Series[4].Color = System.Drawing.Color.Green;chart1.Series[5].Color = System.Drawing.Color.RoyalBlue;//右上角的曲线名称是否显示chart1.Series[0].IsVisibleInLegend = true;chart1.Series[1].IsVisibleInLegend = true;chart1.Series[10].IsVisibleInLegend = true;//右上角的曲线名称chart1.Series[0].LegendText = "随机抽取曲线1";chart1.Series[1].LegendText = "随机抽取曲线2";chart1.Series[2].LegendText = "随机抽取曲线3";chart1.Series[3].LegendText = "随机抽取曲线4";chart1.Series[4].LegendText = "随机抽取曲线5";chart1.Series[5].LegendText = "随机抽取曲线6";chart1.Series[6].LegendText = "随机抽取曲线7";chart1.Series[7].LegendText = "随机抽取曲线8";chart1.Series[8].LegendText = "随机抽取曲线9";chart1.Series[9].LegendText = "随机抽取曲线10";chart1.Series[10].LegendText = "Average";//名称的悬浮备注chart1.Series[10].LegendToolTip = "此乃10个随机曲线的平均值曲线";chart1.Series[0].LegendToolTip = "随机抽取曲线1备注";chart1.Series[1].LegendToolTip = "备注2";//坐标Y值是否显示在图表中//chart1.Series[0].IsValueShownAsLabel = true;//chart1.Series[1].IsValueShownAsLabel = true;//chart1.Series[2].IsValueShownAsLabel = true;//chart1.Series[3].IsValueShownAsLabel = true;//chart1.Series[4].IsValueShownAsLabel = true;chart1.Series[10].IsValueShownAsLabel = true;//chart1.Series.Clear();     使表格GGG//chart1.Series.Dispose();#endregion

  //设置网格线chartDemo1.ChartAreas[0].AxisX.MajorGrid.LineColor = Color.Gray;chartDemo1.ChartAreas[0].AxisX.MajorGrid.Interval = 500;//网格间隔chartDemo1.ChartAreas[0].AxisX.MinorGrid.Interval = 500;chartDemo1.ChartAreas[0].AxisX.MajorGrid.LineDashStyle = ChartDashStyle.Dash; //设置网格类型为虚线chartDemo1.ChartAreas[0].AxisY.MajorGrid.LineColor = Color.Gray;chartDemo1.ChartAreas[0].AxisY.MajorGrid.Interval = 4;chartDemo1.ChartAreas[0].AxisY.MinorGrid.Interval = 4;chartDemo1.ChartAreas[0].AxisY.MajorGrid.LineDashStyle = ChartDashStyle.Dash;//网格Y轴线类型this.chartDemo1.ChartAreas[0].AxisX.MajorGrid.LineColor = System.Drawing.Color.Transparent;//    this.chartDemo1.ChartAreas[0].AxisY.MajorGrid.LineColor = System.Drawing.Color.Transparent;
//滑轮设置  chartDemo1.ChartAreas[0].AxisX.LabelStyle.Format = "HH:mm:ss"; chartDemo1.ChartAreas[0].AxisX.ScaleView.Size = 8;chartDemo1.ChartAreas[0].AxisX.ScrollBar.IsPositionedInside = true;chartDemo1.ChartAreas[0].AxisX.ScrollBar.Enabled = true;
   private void chart1_MouseEnter(object sender, MouseEventArgs e){if (e.Delta > 0)//鼠标向上{if (chart1.ChartAreas["ChartArea1"].AxisX.ScaleView.Size < 100)//判断显示的最大数值{// chart1.ChartAreas["ChartArea1"].AxisX.ScaleView.Size += 2;//+=5---滚动一次显示5个chart1.ChartAreas["ChartArea1"].AxisX.ScaleView.Position += 2;}}else//鼠标向下滚动{if (chart1.ChartAreas["ChartArea1"].AxisX.ScaleView.Size > 1){// chart1.ChartAreas["ChartArea1"].AxisX.ScaleView.Size -= 2;// - = 5---滚动一次减小显示5个chart1.ChartAreas["ChartArea1"].AxisX.ScaleView.Position -= 2;}}}private void chart1_MouseEnter(object sender, EventArgs e)//当鼠标移动到控件上-发生的事件{MouseWheel += new MouseEventHandler(chart1_MouseEnter);//调用滚轮事件}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/776048.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Charles证书一年过去后怎么处理?

1、删除证书 windows--》设置--》搜索(管理证书)--》右键删除2、重置证书3、重新安装证书 安装完后重启charles

阿里云CentOS7.x ECS云盘在线扩容操作

说明这里只介绍如何在线扩容 操作系统:CentOS 7.x 以下操作实现给200G云盘扩容至300G;操作步骤 创建快照 找到需要扩容的云盘,创建快照,避免扩容出问题数据丢失,阿里云快照是收付费的,快照时长设置1天即可;操作比较简。磁盘创建快照创建快照配置截图(保留时间设置1天)…

【BUUCTF】AreUSerialz

【BUUCTF】AreUSerialz (反序列化) 题目来源 收录于:BUUCTF  网鼎杯 2020 青龙组 题目描述 根据PHP代码进行反序列化 <?phpinclude("flag.php");highlight_file(__FILE__);class FileHandler {protected $op;protected $filename;protected $content;fu…

什么情况下你能接受 996

要是有更高的工资或者更好的学习机会,你会自愿接受“996”吗?文中还有粉丝投稿面经的详解,赶快来看看吧。在当下的职场环境中,996 工作制一直是一个备受争议的话题。“996”是一种工作制度的代称,指的是工作日早上 9 点上班,晚上 9 点下班,中午和傍晚休息 1 小时(或不到…

el-progress 自定义线状进度条右边的文字

需要展示类似下面的效果 搜了很多slot的方式试了都不行,好像是因为我后面的文字太长了导致了换行,加上这边需要加其他的样式,最后干脆将原始的文字变成空的,自己写右边的文字加样式了<divstyle="margin: 10px 0 20px 0"v-for="item in deptdata":ke…

SemanticKernel/C#:检索增强生成(RAG)简易实践

本文介绍了基于SemanticKernel/C#的检索增强生成(RAG)简易实践。检索增强生成(RAG)是什么? RAG是“Reference-based Generative model with Attention”的缩写,也可以被称为“Retrieval-Augmented Generation”,是一种结合了检索技术和生成模型的方法,主要用于自然语言处理…

docker-compose搭建elk

一、准备检查自己的docker 和 docker-compose是否安装完毕,切换docker的镜像源二、安装本次安装的主要组件 包括es 、filebeat、kibana、logstash2.1 先配置组件的挂载点 2.2 配置各组件的相关配置文件es-->config---&g…

save-all-resources | 将指定页面的所有资源存到本地 | chrome插件推荐

save-all-resources https://chromewebstore.google.com/detail/save-all-resources/abpdnfjocnmdomablahdcfnoggeeiedb使用方法: F12 右边选择 ResourceSaver点击右边的 Save All Resources 按钮即可--------------------------------------------- 生活的意义就是你自己知道…

低代码如何借助 K8s 实现高并发支持?

引言 在当今这个数字化时代,互联网的普及和技术的飞速发展使得应用程序面临着前所未有的挑战,其中最为显著的就是高并发访问的需求。随着用户数量的激增和业务规模的扩大,如何确保应用在高并发场景下依然能够稳定运行、快速响应,成为了所有开发者和技术团队必须面对的重要课…

02.计算器存储器的原理

02.计算器存储器的原理 目录介绍01.什么是存储器1.1 了解存储器是什么 1.2 存储器类型02.存储器系统设计2.1 存储器分层设计 2.2 存储器层次结构 2.3 高速缓存设计思想 2.4 虚拟内存访问内存03.存储器类型3.1 按照材质划分 3.2 按芯片类型划分 3.3 内存 vs CPU 3.4 存储器访问权…

自动化生成测试报告(Jemeter)

点击查看代码 E:\apache-jmeter-5.6.3\work>E:\apache-jmeter-5.6.3\bin\jmeter -n -t 模块控制器.jmx -l report.jtl -o E:\apache-jmeter-5.6.3\report

UDS学习总结

1 UDS简介 1.1 什么是UDS UDS (Unified Diagnostic Services) 统一诊断服务,是车辆诊断的一种应用层协议,面向整车所有ECU ,UDS协议ISO 14229定义了应用层和会话层,在协议里面定义了诊断的请求,诊断响应的报文格式,以及ECU怎样处理诊断请求报文,以及诊断服务的应用。它不…