Tag: mschart

如何更改图表系列颜色

我有一个系列,用数据库中的记录填充我的图表。 显示了7条记录,但是采用了sanme颜色。 我试图改变每个酒吧颜色而没有成功 下面是我试过的线,但我给了我一个大绿条(: private void button1_Click(object sender, EventArgs e) { /*First empty the chart2 to fire the current data*/ if (cbChart.SelectedItem == null) { chart.Visible = false; chart.Controls.Clear(); } else //pnchart.Controls.Clear(); chart.Visible = true; chart.Titles.Clear(); /*Add a new title*/ Title bezeichung = new Title(“Finance” + Environment.NewLine + “(GWU)”, Docking.Top, new Font(“Yu Gothic”, 8, FontStyle.Bold), […]

Microsoft Chart堆叠列与非堆叠列

我希望显示4组数据。 每组有1个堆叠列,1个非堆叠列。 这是我所追求的模型: 获得四个团队很容易,这给了我想要的东西: Series series = chart.Series.Add(“Budget”); series.ChartType = SeriesChartType.Column; series.Name = “Budget”; series.Points.Add(55); series.Points.Add(10); series.Points.Add(50); series.Points.Add(50); series = chart.Series.Add(“Actual”); series.ChartType = SeriesChartType.Column; series.Name = “Actual”; series.Points.Add(80); series.Points.Add(90); series.Points.Add(10); series.Points.Add(10); 现在我想把黄色条子堆成条状。 我已经尝试过添加3个系列; ChartType = Column,StackedColumn,StackedColumn。 但堆叠的列出现在非堆叠的列的前面。 我正在尝试的是什么?

MS图雷达轴频率

我想在WinForms应用程序中使用MS Chart控件绘制雷达图表。 这个图表包含1天的数据,我有每秒的数据,所以我有86 400 xy值对。 X轴包含日期,y我的int值。 我的测试代码是这样的: var fromDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 0, 0, 0); var toDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 23, 59, 59); List xValues = new List(); List yValues = new List(); var iterDate = fromDate; var i = 0; while (iterDate <= toDate) { xValues.Add(iterDate); yValues.Add(i); iterDate = iterDate.AddSeconds(1); […]

c#chart control删除条形图中条形之间的空格

我有一个使用c#.net图表控件制作的条形图,如下所示: 如您所见,图表上的每对红色和蓝色条之间都有一个空格。 有没有办法删除这些空格? 提前致谢! 编辑: 以下是设计师的作品 chartArea1.Name = “ChartArea1”; this.CHRT_DPS_HPS.ChartAreas.Add(chartArea1); legend1.Name = “Legend1”; this.CHRT_DPS_HPS.Legends.Add(legend1); this.CHRT_DPS_HPS.Location = new System.Drawing.Point(3, 271); this.CHRT_DPS_HPS.Name = “CHRT_DPS_HPS”; series1.ChartArea = “ChartArea1”; series1.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Bar; series1.Color = System.Drawing.Color.Red; series1.Legend = “Legend1”; series1.MarkerBorderWidth = 0; series1.Name = “DPS”; series1.XValueType = System.Windows.Forms.DataVisualization.Charting.ChartValueType.String; series1.YValueType = System.Windows.Forms.DataVisualization.Charting.ChartValueType.Double; series2.ChartArea = “ChartArea1”; series2.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Bar; series2.Legend = “Legend1”; […]

如何将图表类型设置为饼图

当我这样做而没有把图表类型工作正常,但当我把它设置为馅饼时它的工作不正确。 它将所有系列名称作为Point 1,馅饼只有1个蓝色部分(一个圆圈),它只显示第一个点(Value)。 foreach (var tag in tags) { HtmlNode tagname = tag.SelectSingleNode(“a”); HtmlNode tagcount = tag.SelectSingleNode(“span/span”); chart1.Series.Add(tagname.InnerText); chart1.Series[x].Points.AddY(int.Parse(tagcount.InnerText)); chart1.Series[x].IsValueShownAsLabel = true; chart1.Series[x].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Pie; x++; }

MS图表控制:两个X轴,一个小时,另一个几天(或混合两个)

可以有一个X轴显示小时(HH:MM) 和另一个(或相同)显示天数(YYYY-MM-DD) 在不同的时间间隔看起来像 | | | | | 09:00 10:00 11:00 12:00 01:00 | 2010/04/20 或理想情况: | | | | | 09:00 10:00 11:00 2010/04/20 01:00 关闭主题建议 我使用MS Chart Control的次数越多,我对从ZedGraph切换的决定感到后悔。 我真的生气和沮丧我在这些毫无意义的细节上浪费了很长时间,并通过非常丑陋的变通方法来规避(比如制作许多重复的“幽灵”图表以“处理”不同的缩放系列, – 哎呀!!? – ,对齐数据手动添加空点,因为默认代码用例非常不灵活)。 乍一看似乎非常花哨,但从你想要调整并做一些严肃的事情而不是显示超基本饼图或条形直方图的那一刻起,你就进入了一个地狱世界 。 所以我基本上建议不要使用它,除非你已经坚持使用它(但重新考虑转移到那些不那么笨且费时的事情上永远不会太晚) 编辑:我可以在这里建议使用“关键字”。 看起来非常时髦和乏味…… 此外,这违反了逻辑和演示之间的分离 (这应该永远不会发生!设计糟糕的标志……) 对于这种恼人的类似(无能)问题的另一个例子,请看这篇文章

MSCharts自定义平移

我正在尝试在MSCharts(Microsoft Charting Controls)中创建自己的自定义平移function。 我意识到有一个扩展用于缩放和平移,但是它没有很多我想要的function。 这是我目前的平移function: //handles mouse panning, will pan while mouse left click if held down.. private int prevx = 0; private int prevy = 0; private void Mouse_Up(object sender, MouseEventArgs e) { //reset previous x and y on mouse click up if (e.Button == MouseButtons.Left) { prevx = 0; prevy = 0; } […]

MS图表C#折线图对带间隙的数据不准确

我有一些如下所示的代码循环通过datagridview并绘制数据图。 我遇到的问题有时数据在有间隙时没有正确排列。 我有多个设备将数据吐出到我的datagridview中,有时该设备不会报告2个报告,因此数据存在差距,但我仍然希望我的数据正确排列。 我该如何实现这一目标? 下面的图表将更好地描述问题。 我正在使用MSCharts,Winforms,C#和.NET 4。 //for each column in my datagridview for (int i = 0; i < currentDGV.Rows.Count; i++) { //for each column in each row in my datagridview for (int j = 2; j < currentDGV.Columns.Count – 5; j++) { //make sure the column is visible and isnt a outlier if […]

启用x轴滚动以进行图表控制

我似乎无法在x轴上启用滚动条。 我正在使用下面的代码生成图表。 List xVal = new List(); List yVal = new List(); for (int i = 0; i <= maxQueuetime ; i++) { xVal.Add(i); yVal.Add(graph2Yaxis[i]); } chart1.ChartAreas["ChartArea1"].AxisX.Interval = 1; chart1.Series[0]["PointWidth"] = "1"; chart1.Series[0].Points.DataBindXY(xVal, yVal);

如何在散点图中绘制超过50,000个值,从而节省计算机资源?

我正在使用Visual Studio 2017,我正在尝试使用C#和winform创建一个在散点图中显示实时值的程序。 使用下面的源代码,我能够在事件发生时显示实时值,并获得一个新值(每秒3~5次)。 valueArray通过GetRealTimeData函数不断获取新值,图表显示数组中的所有元素。 valueArray[valueArray.Length – 1] = Convert.ToDouble(GetRealTimeData().Trim()); Array.Copy(valueArray, 1, valueArray, 0, valueArray.Length – 1); this.chart1.Series[“Series1”].Points.Clear(); this.chart1.Series[“Series1”].Points.DataBindY(valueArray); 但是,我在使用这个程序时遇到了问题,即使它在图表中显示3,000个值,它也会消耗大量的计算机资源。 我计划让图表代表50,000到100,000个值,但我认为它会耗费太多的资源复制并在每次获得新值时显示旧值。 我想知道是否有任何function或方法来完成这类工作。 如果我能得到一些建议或想法,我将不胜感激。