【问题标题】:c# chart control remove spaces between bars in bar chartc#图表控件删除条形图中条形之间的空格
【发布时间】:2011-07-26 22:31:24
【问题描述】:

我有一个使用 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";
            series2.MarkerBorderWidth = 0;
            series2.Name = "HPS";
            series2.XValueType = System.Windows.Forms.DataVisualization.Charting.ChartValueType.String;
            series2.YValueType = System.Windows.Forms.DataVisualization.Charting.ChartValueType.Double;
            this.CHRT_DPS_HPS.Series.Add(series1);
            this.CHRT_DPS_HPS.Series.Add(series2);
            this.CHRT_DPS_HPS.Size = new System.Drawing.Size(1199, 300);
            this.CHRT_DPS_HPS.TabIndex = 1;
            this.CHRT_DPS_HPS.Text = "CHRT_DPS_HPS";
            title1.Name = "Title1";
            title1.Text = "DPS Chart";
            this.CHRT_DPS_HPS.Titles.Add(title1);

【问题讨论】:

  • 你能贴出你用来生成这张图的代码吗?
  • 这一切都是在设计视图中通过拖放完成的。
  • 如果您打开 Form.Designer.cs 文件,您将看到设计器生成的代码。您可以粘贴与图表控件相关的线条吗?
  • 我在编辑中添加了代码行。感谢凯尔的所有快速回复!

标签: c# winforms mschart


【解决方案1】:

您需要为该图表类型设置自定义属性。

对每个系列使用这个(我的代码指定系列零):

chart1.Series[0]["PointWidth"] = "1";

将零替换为您的系列的名称和/或索引。

顺便说一句 - 尽管它确实有其局限性 - Microsoft Charting 是一个非常强大的图表库!你只需要阅读文档。在这种情况下,此图表类型具有您可以使用的特殊自定义属性。

这在我的测试应用程序中有效。如果它不适用于您的,请告诉我,我将执行进一步的故障排除。

由于我是新手并试图获得代表,如果我的回答是正确的,请将其标记为答案。谢谢。

【讨论】:

  • 这也适用于 System.Web.UI.DataVisualization.Charting。虽然它只是增加了每个条的边界线的大小,但它有效,我很高兴。