利用ComponentOne生成柱状图和折线图相结合

C# Chart控件实现柱形图和折线图在一个chart上同时显示,并显示滚动条 效果如下:左侧纵坐标表示柱形图Y轴数据,右侧纵坐标表示折线图Y轴数据 代码: private void ButtonClickSelect() { string GD = textBoxGD.Text.Trim(); string XH = textBoxXH.Text.Trim(); string CJ = comboBoxCJ.Text.Trim(); string Date1 = 阅读详情

利用ComponentOne生成柱状图和折线图相结合,ComponentOne这个我就不用介绍了,大家搜一下就知道了。

可以直接在窗体上面把两个相结合起来。也可以完全通过代码来实现。以下就是通过代码来实现的:

先拖放一个C1Chart到窗体上面。然后删除上面的折线图:

删除后效果如下:



Designer.cs文件:

private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form4));
this.c1Chart1 = new C1.Win.C1Chart.C1Chart();
((System.ComponentModel.ISupportInitialize)(this.c1Chart1)).BeginInit();
this.SuspendLayout();
// 
// c1Chart1
// 
this.c1Chart1.Location = new System.Drawing.Point(28, 33);
this.c1Chart1.Name = "c1Chart1";
this.c1Chart1.PropBag = resources.GetString("c1Chart1.PropBag");
this.c1Chart1.Size = new System.Drawing.Size(427, 303);
this.c1Chart1.TabIndex = 0;
// 
// Form2
// 
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(467, 434);
this.Controls.Add(this.c1Chart1);
this.MinimumSize = new System.Drawing.Size(475, 462);
this.Name = "Form2";
this.Text = "Separate Group Visual Effects";
this.Load += new System.EventHandler(this.Form1_Load);
((System.ComponentModel.ISupportInitialize)(this.c1Chart1)).EndInit();
this.ResumeLayout(false);
}

private C1.Win.C1Chart.C1Chart c1Chart1;


后台代码:


   private void Form1_Load(object sender, EventArgs e)
        {
   //Y,Y2设置
   Area a = c1Chart1.ChartArea;
   a.AxisX.UnitMajor = 10;
   a.AxisX.UnitMinor = 10;
   //设置轴线的最大值和最小值(当AutoMin和AutoMax被设置为False时).关于此的更多信息,请参见轴线边界(209页). 
   a.AxisY.Max = 50;
   a.AxisY.Min = 0;
   //设置主要和次要刻度线之间的间距(当AutoMajor和AutoMinor属性被设置为False时). 66page
   a.AxisY.UnitMajor = 10;
   a.AxisY.UnitMinor = 10;
   // Clear 轴线标签的名
   a.AxisY.Text = "";
   a.AxisY2.Min = 0;
   a.AxisY2.Max = 100;
   a.AxisY2.UnitMajor = 10;
   a.AxisY2.UnitMinor = 10;
   // Clear 轴线标签的名
   a.AxisY2.Text = "";

   ChartGroup cgroup = c1Chart1.ChartGroups.Group0;
   cgroup.ChartType = Chart2DTypeEnum.XYPlot;
   //input the data through the series collection 
   ChartDataSeriesCollection cdsc = cgroup.ChartData.SeriesList;
   cdsc.Clear(); //remove default data 
   //create the series object from the collection and add data 
   ChartDataSeries cds = cdsc.AddNewSeries();

   // Add Data for ChartGroup0, Bar chart 
   string[] MonthNames = { "10月", "11月", "12月", "13月", "14月" };
   double[] AvgPrecip = { 16, 19, 19, 19, 26 };
   //create a label for the Bar chart data series 
   cds.Label = "左軸:月降水量(㎜/h)";
   cds.FillStyle.Color1 = Color.Red;
   cds.SymbolStyle.Shape = SymbolShapeEnum.None;
   ////Use the CopyDataIn method of the ChartDataArray object to copy the X and Y value data into the data series 
   cds.X.CopyDataIn(MonthNames);
   cds.Y.CopyDataIn(AvgPrecip);
   
   ////create and add the data for the XY chart in Group1 
   ChartGroup cgroup2 = c1Chart1.ChartGroups.Group1;
   cgroup2.ChartType = Chart2DTypeEnum.Bar;

   //input the bar chart data of group1 through the series collection 
   ChartDataSeriesCollection cdsc2 = cgroup2.ChartData.SeriesList;

   //create the series object from the second collection and add data 
   ChartDataSeries cds2 = cdsc2.AddNewSeries();
   cds2.X.CopyDataIn(MonthNames);
   cds2.Y.CopyDataIn(new double[] {41, 10, 0, 0, 27 });

   cds2.Label = "右軸:月積算降水量(㎜)";
   cds2.FillStyle.Color1 = Color.Blue;
   //取得或设定轴是通常的或者反转的(升序或者降序).198page
   c1Chart1.Legend.Reversed = true;
   
  }

效果如下:


上面的写法会造成左右轴数据在条形状和折线图中显示的数据不对。改成下面的方法。

private void Form1_Load(object sender, EventArgs e)
        {
            string[] MonthNames = { "10时", "11时", "12时", "13时", "14时" };

            ChartGroup cgroup0 = c1Chart1.ChartGroups.Group0;
            cgroup0.ChartType = Chart2DTypeEnum.XYPlot;
            ChartDataSeriesCollection cdsc = cgroup0.ChartData.SeriesList;
            cdsc.Clear();
            ChartDataSeries cds = cdsc.AddNewSeries();
            cds.X.CopyDataIn(MonthNames);
            cds.Y.CopyDataIn(new double[] { 50, 30, 10, 40, 20 });


            ChartGroup cgroup2 = c1Chart1.ChartGroups.Group1;
            cgroup2.ChartType = Chart2DTypeEnum.Bar;
            ChartDataSeriesCollection cdsc2 = cgroup2.ChartData.SeriesList;
            cdsc2.Clear();
            ChartDataSeries cds2 = cdsc2.AddNewSeries();
            cds2.X.CopyDataIn(MonthNames);
            cds2.Y.CopyDataIn(new double[] { 40, 42, 40, 45, 10 });


            this.c1Chart1.ChartArea.AxisY.Min = 0;
            this.c1Chart1.ChartArea.AxisY.Max = 100;
            this.c1Chart1.ChartArea.AxisY2.Min = 0;
            this.c1Chart1.ChartArea.AxisY2.Max = 50;

            c1Chart1.ChartArea.AxisY.Compass = C1.Win.C1Chart.CompassEnum.East;
            c1Chart1.ChartArea.AxisY2.Compass = C1.Win.C1Chart.CompassEnum.West;
        }

 

C1(ComponentOne) Chart组件研究笔记一 C1(ComponentOne) Chart组件研究笔记一。2006-11-23 16:13假设c1Chart1为Chart控件的一个实例。一、基本框架图 二、主要外层属性(即this.c1Chart1的主要属性)1、Header和Footer,上标题和下标题。位于this.c1Chart1.Header和this.c1Chart2、Legend。 阅读详情

相关推荐

用C#2017_WPF实现柱状图、饼图、折线图样例.rar

用C#2017_WPF实现柱状图、饼图、折线图样例.rar

ComponentOne Studio for WinForms基础课程

ComponentOne Studio for WinForms 入门教程视频主要介绍ComponentOne控件产品的基本使用方法,非常适合.NET Winform界面程序。包括界面导航与布局、业务数据交互、数据分析与可视化、报表生成和文档转换等内容。 如耳熟能详的C1FlexGrid、C1Chart、C1DockingTab、C1Gauge绑定数据等控件。将这些控件直接用于您的系统中,将在大幅缩短时间的前提下,为您的用户带来完美的用户体验。

C1Chart控件例子

里面包含C1chart绘制柱形图、饼图、折线图等例子。

C# Winform Chart控件用法1

Series:最重要的属性,图表集合,就是最终看到的饼图、柱状图、线图、点图等构成的合 Series,应该是整个绘图中最关键的内容了,通俗点说,即是实际的绘图数据区域,实际呈现的图形形状,简单点说,以折线图为例,每个Series就是一条线,每一条线都有自己的绘制形状、样式、独立的数据等。需要注意的是,每一个Series,你可以指定它的绘制区域(即把哪个Series画在哪个ChartArea),默认情况下,如果不自己再添加绘图区域ChartArea,则所有的Series会画在同一个ChartArea。

qq_57798018的博客 1万+

C1.WPF.C1Chart3D 破解版

C1.WPF.C1Chart3D 破解版

Unity3D实战:5分钟搞定RTSP监控视频流播放(附完整代码)

本文详细介绍了如何在Unity3D中快速实现低延迟RTSP监控视频流播放,提供完整代码和优化方案。通过Video Player组件和FFmpeg集成,开发者可以轻松应对智能家居和安防监控领域的实时视频流挑战,显著降低延迟并提升性能。

weixin_29015051的博客 588

使用 Winform chart 绘制大数据量波形图,带缩放功能

我这的需求是使用Winform自带的chart控件,完成多路信号的显示,可以放大。缩小查看数据。好了。先上张图: 点击查看数据按钮,将生成的模拟信号数据显示出来。一共是52路信号,每个长度是1600。 用鼠标点击想要放大的区域: 放大后效果: 然后点击圆圈处即可返回。以下是控件的核心代码: using System; using System.Collections.Gen...

chulijun3107的博客 1万+

因果推断--PSM的原理和应用(二)

上一篇介绍了DID,本文介绍和DID可一起搭配使用的一种因果推断方法PSM。在正式介绍PSM之前,先来简单回顾一下为什么需要因果推断以及如何做因果推断。我们都知道相关非因果,比起相关我们更希望知道两个事件之间的因果关系,有了确切的因果关系,才能知道对A如何操作才能引起B的变化。解决因果推断问题,目前主要有两种框架,Rubin虚拟事实模型和Pearl因果图模型。站在数据分析的角度上,Rubin虚拟事实模型更容易理解,其核心思想是寻找恰当的对照组。

baidu_26137595的博客 1万+

C1WebChart 图形化处理。

C1WebChart 对图形化处理还可以。以下图如下:A:折线图:B:柱形图:C:面积图:D:饼图:E:折线图(3D)F:柱形图(3D)G:面积图(3D)H:饼图(3D)完成这些功能。需要以下条件。1:引用相关组件(C1.Common.dll、C1.Web.C1WebChart.dll、C1.Win.C1Chart.dll)2:配置web.config                       

龙卷风(2007) 3940

医疗影像技术实战:如何用Python快速生成DRR图像(附完整代码)

本文详细介绍了如何使用Python实现数字重建放射影像的快速生成。通过实战代码,从基础光线投射算法到性能优化,逐步讲解DRR图像生成的核心原理与工程实践,帮助开发者掌握医疗影像处理的关键技术,赋能放射治疗规划与图像引导手术等临床工具开发。

k8l9m0n的博客 72

【STM32】433MHz OOK信号软解码实战:从EV1527协议到嵌入式实现

本文详细介绍了基于STM32微控制器实现433MHz OOK信号软解码的完整实战过程。文章从EV1527协议解析入手,重点阐述了利用STM32的GPIO和定时器进行信号采样、脉宽还原、同步头识别以及数据位判决的核心算法,并提供了对抗无线干扰的容错优化策略,帮助开发者深入理解并掌握低成本无线通信的嵌入式实现方案。

weixin_29299807的博客 785

C1(ComponentOne) Chart组件研究笔记

C1(ComponentOne) Chart组件研究笔记2008-05-04 10:40假设c1Chart1为Chart控件的一个实例。一、基本框架图二、主要外层属性(即this.c1Chart1的主要属性)1、Header和Footer,上标题和下标题。位于this.c1Chart1.Header和this.c1Chart2、Legend。

enginetanmary的专栏 2031

RocketMQ 为什么要自己做一个 NameServer ?RocketMQ 5.x 版本中的 proxy、controller 和 container 分别有什么用 ?

1.独立运行的分散结构 2.简化实现,容忍部分数据不一致 Proxy:多语言支持、简化开发 Controller: 提高 Broker 的性能 Container:提高资源利用率,平衡负载

xaiobit_hl的博客 1490

通过代码动态创建 C1Chart 图表控件

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33975951的博客 683

BLE透传速率调优(二)

摘要:本文分析了蓝牙协议中MDbit=1时应连续发送多包但实际只发一包的问题。通过波形分析和代码调试,发现问题的根源在于接收端出现sync error导致提前关闭接收窗口,而非发送端问题。最终通过调整RF时序参数(将rxpathdly改为13us)解决了TX到RX转换的同步问题,使连接事件能正常发送多个数据包,传输速率提升至70kb/s。文中详细记录了使用逻辑分析仪和trace宏调试的过程,揭示了CEVA芯片设计中TX中断与ACK接收的关联特性。

袁赟的博客 800

LTM4644 四通道并联 16A 输出配置:PCB 布局 3 要点与热仿真验证

本文详细解析了LTM4644四通道并联实现16A输出的PCB布局与热管理要点,包括电流路径对称性设计、热优化布局技巧和接地系统优化。通过实际工程案例,展示了如何确保电流均流、热分布均衡及长期可靠性,为FPGA、ASIC和服务器主板供电设计提供高效解决方案。

weixin_33314040的博客 399

WinForm控件Chart的图表类型

【将就看,后期再加目录导航2020.10.23】 折线图 折线图通常使用一条线来连接一系列不同的数据点。这样的直线是直线,样条曲线或阶梯。折线图更简单,因此还可以使您可视化多个系列而不会像条形图那样重叠。 以下是折线图的不同类型。 折线图 折线图使用直线将图形上的点连接起来,这些直线以相等的间隔显示数据趋势。折线图将输入视为沿x轴等距分布的非数字类别信息。这适用于分类数据,例如文本标签......

左牵黄,右擎仓 7331

基于多传感器融合的智身四足机器狗楼梯环境SLAM系统设计与实现

本文设计了一种基于多传感器融合的四足机器狗楼梯环境SLAM系统。系统采用Jetson Orin NX为主控制器,集成RealSense D435i深度相机和Livox Mid360激光雷达,在ROS2框架下实现平面定位精度<5cm、楼梯环境下导航不漂移的目标。通过多层次传感器融合策略、运动学约束优化和状态切换机制,解决了楼梯环境下的定位累积误差问题,实现了平面与楼梯环境的自动识别切换及精度复位功能。硬件设计注重传感器布局优化和精确标定,软件架构采用分层设计,确保实时性能。该系统为四足机器人在复杂地形中

huanghm88的专栏 242

C1控件的破解步骤

最近接触了一个系统中的打印和报表控件用到了C1控件,控件在以前就注册了的,可是在这次修改了系统后,系统却提示C1的控件没有注册。 怎么回事呢?我们这次并没有修改报表,而且也没有和C1控件相关的改动。怎么就出问题了。经过2天的调查终于明白了,由于发布系统的电脑在 前段时间重装了系统,但是没有安装C1控件并注册,所以即使以前的代码进行了注册,但是在编译后系统运行时还是会显示要求注册。查看代码发

weizhiai12的专栏 6776

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

C1Chart:强大的交互能力

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34413357的博客 1095

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

winform chart控件设置

winform chart控件设置 //seriesX.MarkerColor = Color.Green; //设置点的大小 //seriesX.MarkerSize = 5; //seriesX.MarkerStyle = MarkerStyle.Circle; ...

weixin_42998150的博客 1410

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

遍历窗体上所有控件(遍历子控件)

1: //遍历窗体上所有CheckBox控件 .net winform StringBuilder sb = new StringBuilder(); foreach (Control c in Controls) {     if (c is CheckBox)

kongwei521的专栏 8948
上一篇: winform中图片的左移 右移并记忆移动的位置
下一篇: Winform中利用Graphics 画折线图
蝶恋花雨
博客等级 码龄21年 1290粉丝 147原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值