救急!!!Dev的chartControl画曲线图,怎么控制X轴的标签间隔显示?

百思软件工作室 2013-04-10 08:03:10
Dev的chartControl画曲线图,怎么控制X轴的标签间隔显示?

我X轴是时间,Y轴是金额;
现在记录有100多个,标签在X轴都显示出来了,数字密密麻麻;
麻烦问下,怎么控制X轴的标签间隔显示?

希望能提供一下测试通过的代码;谢谢了。
...全文
3780 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xhy1104122077 2014-09-23
  • 打赏
  • 举报
回复
引用 4 楼 fucktheduck 的回复:
XYDiagram xyDiagram1 = chartControl1.Diagram as XYDiagram; xyDiagram1.AxisX.Range.Auto = false; //要开启滚动条必须将其设置为false xyDiagram1.AxisX.Range.MaxValueInternal = 30.5D > (cnt + 1)?(cnt + 1):30.5D;//在不拉到滚动条的时候,X轴显示多个值,既固定的X轴长度。 xyDiagram1.AxisX.Range.MinValueInternal = -0.5D; xyDiagram1.AxisX.Range.ScrollingRange.Auto = false; xyDiagram1.AxisX.Range.ScrollingRange.MaxValueSerializable = (cnt + 1).ToString();//整个X轴最多显示多多少个值 xyDiagram1.AxisX.Range.ScrollingRange.MinValueSerializable = "0"; xyDiagram1.AxisX.Range.ScrollingRange.SideMarginsEnabled = true;//是否从X轴原点开始显示 xyDiagram1.AxisX.Range.SideMarginsEnabled = false; xyDiagram1.AxisX.VisibleInPanesSerializable = "-1"; // xyDiagram1.AxisY.NumericOptions.Format = DevExpress.XtraCharts.NumericFormat.Percent;//显示为百分数 xyDiagram1.AxisY.Range.Auto = true; // xyDiagram1.AxisY.Range.MaxValueSerializable = "1.02";//固定Y轴的高度 //xyDiagram1.AxisY.Range.MinValueSerializable = "0.5"; xyDiagram1.AxisY.Range.ScrollingRange.SideMarginsEnabled = true; xyDiagram1.AxisY.Range.SideMarginsEnabled = true; xyDiagram1.AxisY.VisibleInPanesSerializable = "-1"; xyDiagram1.EnableAxisXScrolling = true;//启用滚动条
你好,我也遇到这个问题 ,想要固定X坐标轴,你这个里面的cnt是什么呀,求指导。
飞奔的豆沙包 2014-03-18
  • 打赏
  • 举报
回复
这个非常灵活,能控制滚动状态
飞奔的豆沙包 2014-03-18
  • 打赏
  • 举报
回复
XYDiagram xyDiagram1 = chartControl1.Diagram as XYDiagram; xyDiagram1.AxisX.Range.Auto = false; //要开启滚动条必须将其设置为false xyDiagram1.AxisX.Range.MaxValueInternal = 30.5D > (cnt + 1)?(cnt + 1):30.5D;//在不拉到滚动条的时候,X轴显示多个值,既固定的X轴长度。 xyDiagram1.AxisX.Range.MinValueInternal = -0.5D; xyDiagram1.AxisX.Range.ScrollingRange.Auto = false; xyDiagram1.AxisX.Range.ScrollingRange.MaxValueSerializable = (cnt + 1).ToString();//整个X轴最多显示多多少个值 xyDiagram1.AxisX.Range.ScrollingRange.MinValueSerializable = "0"; xyDiagram1.AxisX.Range.ScrollingRange.SideMarginsEnabled = true;//是否从X轴原点开始显示 xyDiagram1.AxisX.Range.SideMarginsEnabled = false; xyDiagram1.AxisX.VisibleInPanesSerializable = "-1"; // xyDiagram1.AxisY.NumericOptions.Format = DevExpress.XtraCharts.NumericFormat.Percent;//显示为百分数 xyDiagram1.AxisY.Range.Auto = true; // xyDiagram1.AxisY.Range.MaxValueSerializable = "1.02";//固定Y轴的高度 //xyDiagram1.AxisY.Range.MinValueSerializable = "0.5"; xyDiagram1.AxisY.Range.ScrollingRange.SideMarginsEnabled = true; xyDiagram1.AxisY.Range.SideMarginsEnabled = true; xyDiagram1.AxisY.VisibleInPanesSerializable = "-1"; xyDiagram1.EnableAxisXScrolling = true;//启用滚动条
xuehan1108 2013-11-23
  • 打赏
  • 举报
回复
解决了吗?我现在也遇到这个问题,求分享。
xuehan1108 2013-11-23
  • 打赏
  • 举报
回复
这个代码能实现间隔设置吗?好像不能啊!!!
huangama2011 2013-04-16
  • 打赏
  • 举报
回复
要设置下 series1.ArgumentScaleType = ScaleType.DateTime;//x轴类型 这个 Series series1 = new Series(this.Text, ViewType.Spline); series1.ArgumentScaleType = ScaleType.DateTime;//x轴类型 series1.ValueScaleType = ScaleType.Numerical;//y轴类型 //X轴的数据字段 series1.ArgumentDataMember = "StatisticsTime"; //Y轴的数据字段 series1.ValueDataMembers[0] = "StatisticsSum"; //定义线条上点的标识形状是否需要 ((LineSeriesView)series1.View).LineMarkerOptions.Visible = false; //定义线条上点的标识形状 ((LineSeriesView)series1.View).LineMarkerOptions.Kind = MarkerKind.Circle; //不显示X、Y轴上面的交点的值 ((PointSeriesLabel)series1.Label).Visible = false; //线条的类型,虚线,实线 ((LineSeriesView)series1.View).LineStyle.DashStyle = DashStyle.Solid; 完整代码分享给你,给满分哟: public void BindChart(DataTable datatable, ChartControl myChartControl) { myChartControl.Name = "chartResult"; myChartControl.Dock = DockStyle.Fill; myChartControl.Size = new System.Drawing.Size(400, 250); // 显示标签. myChartControl.Legend.Visible = true; myChartControl.Series.Clear(); #region 仅供参考(不需要) //控制X、Y轴显示 //XYDiagram diagram = (XYDiagram)chartControl.Diagram; //diagram.AxisX.Label.Staggered = true; //diagram.AxisY.Label.BeginText = "Axis value = "; //diagram.AxisY.Label.Angle = -30; //diagram.AxisY.Label.Antialiasing = true; //XYDiagram diagram = (XYDiagram)chartControl.Diagram; //diagram.AxisX.DateTimeMeasureUnit = DateTimeMeasurementUnit.Second; //diagram.AxisX.DateTimeOptions.Format = DateTimeFormat.Custom; diagram.AxisX.DateTimeOptions.FormatString = "HH:mm:ss"; //((XYDiagram)myChartControl.Diagram).AxisX.Interlaced = true; //((XYDiagram)myChartControl.Diagram).AxisX.GridSpacing = 10; //((XYDiagram)myChartControl.Diagram).AxisX.Label.Angle = -30; //((XYDiagram)myChartControl.Diagram).AxisX.Label.Antialiasing = true; //((XYDiagram)myChartControl.Diagram).AxisX.DateTimeOptions.Format = DateTimeFormat.MonthAndDay; ////XYDiagram xyDiagram1 = new XYDiagram(); ////xyDiagram1.AxisX.Range.Auto = false; //要开启滚动条必须将其设置为false //////xyDiagram1.AxisX.Range.MaxValueInternal = 30.5D > (cnt + 1) ? (cnt + 1) : 30.5D;//在不拉到滚动条的时候,X轴显示多个值,既固定的X轴长度。 //////xyDiagram1.AxisX.Range.MinValueInternal = -0.5D; ////xyDiagram1.AxisX.Range.ScrollingRange.Auto = false; ////xyDiagram1.AxisX.MinorCount = 9; //显示X轴间隔数量 ////xyDiagram1.AxisX.Tickmarks.MinorVisible = true;//是否显示X轴间隔 //xyDiagram1.AxisY.MinorCount = 1;//显示Y轴间隔数量 //xyDiagram1.AxisY.Tickmarks.MinorVisible = true;//是否显示Y轴间隔 //xyDiagram1.AxisX.Range.ScrollingRange.MaxValueSerializable = (cnt + 1).ToString();//整个X轴最多显示多多少个值 // xyDiagram1.AxisX.Range.ScrollingRange.MinValueSerializable = "0"; //xyDiagram1.AxisX.DateTimeMeasureUnit = DateTimeMeasurementUnit.Second; //xyDiagram1.AxisX.DateTimeOptions.Format = DateTimeFormat.Custom; //xyDiagram1.AxisX.DateTimeOptions.FormatString = "yyyy:MM:HH"; //xyDiagram1.AxisX.Range.ScrollingRange.SideMarginsEnabled = true;//是否从X轴原点开始显示 //xyDiagram1.AxisX.Range.SideMarginsEnabled = false; ////xyDiagram1.AxisX.VisibleInPanesSerializable = "-1"; ////xyDiagram1.AxisY.NumericOptions.Format = DevExpress.XtraCharts.NumericFormat.Percent;//显示为百分数 //xyDiagram1.AxisY.Range.Auto = false; ////xyDiagram1.AxisY.Range.MaxValueSerializable = "1.02"; ////xyDiagram1.AxisY.Range.MinValueSerializable = "0.5"; //xyDiagram1.AxisY.Range.ScrollingRange.SideMarginsEnabled = true; //xyDiagram1.AxisY.Range.SideMarginsEnabled = true; ////xyDiagram1.AxisY.VisibleInPanesSerializable = "-1"; //xyDiagram1.EnableScrolling = true;//启用滚动条 //获取Diagram必须在ChartControl中已经加入了Series之后 //((XYDiagram)chartControl.Diagram).Rotated = false; #endregion //图标位置 myChartControl.Legend.AlignmentHorizontal = LegendAlignmentHorizontal.Right; myChartControl.Legend.AlignmentVertical = LegendAlignmentVertical.Top; ChartTitle chartTitle = new ChartTitle(); chartTitle.Text = this.Text;//标题内容 chartTitle.TextColor = System.Drawing.Color.Black;//字体颜色 chartTitle.Font = new Font("Tahoma", 8);//字体类型字号 chartTitle.Dock = ChartTitleDockStyle.Bottom;//标题对齐方式 chartTitle.Alignment = StringAlignment.Far; myChartControl.Titles.Clear();//清理标题 myChartControl.Titles.Add(chartTitle);//加载标题 Series series1 = new Series(this.Text, ViewType.Spline); series1.ArgumentScaleType = ScaleType.DateTime;//x轴类型 series1.ValueScaleType = ScaleType.Numerical;//y轴类型 //X轴的数据字段 series1.ArgumentDataMember = "StatisticsTime"; //Y轴的数据字段 series1.ValueDataMembers[0] = "StatisticsSum"; //定义线条上点的标识形状是否需要 ((LineSeriesView)series1.View).LineMarkerOptions.Visible = false; //定义线条上点的标识形状 ((LineSeriesView)series1.View).LineMarkerOptions.Kind = MarkerKind.Circle; //不显示X、Y轴上面的交点的值 ((PointSeriesLabel)series1.Label).Visible = false; //线条的类型,虚线,实线 ((LineSeriesView)series1.View).LineStyle.DashStyle = DashStyle.Solid; //绑定数据源 series1.DataSource = datatable; myChartControl.Series.Add(series1); }

62,233

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧