【问题标题】:Asp.net chart, how can I set the X axis label position to left aligned instead of centered?Asp.net图表,如何将X轴标签位置设置为左对齐而不是居中?
【发布时间】:2015-06-18 21:46:50
【问题描述】:

我花了好几个小时试图解决这个愚蠢的问题。我用asp图表控件创建了一个直方图。我想要做的就是将 xaxis 标签放在列的左侧而不是居中。 Xaxis 标签似乎没有像系列那样的位置属性,所以我无法弄清楚,这很令人沮丧。

这是我正在谈论的图形类型的示例代码,向您展示我所得到的大致内容:

        private void Graphique()
    {
        // Creating the series 
        Series series2 = new Series("Series2");

        // Setting the Chart Types
        series2.ChartType = SeriesChartType.Column;

        // Adding some points
        series2.Points.AddXY(1492, 12);
        series2.Points.AddXY(2984, 0);
        series2.Points.AddXY(4476, 1);
        series2.Points.AddXY(5968, 2);
        series2.Points.AddXY(7460, 2);
        series2.Points.AddXY(8952, 12);
        series2.Points.AddXY(10444, 4);
        series2.Points.AddXY(11936, 3);
        series2.Points.AddXY(13428, 3);
        series2.Points.AddXY(14920, 5);
        series2.Points.AddXY(16412, 1);

        Chart3.Series.Add(series2);

        Chart3.Width = 600;
        Chart3.Height = 600;

        // Series visual
        series2.YValueMembers = "Frequency";
        series2.XValueMember = "RoundedValue";
        series2.BorderWidth = 1;
        series2.ShadowOffset = 0;
        series2.IsXValueIndexed = true;

        // Setting the X Axis
        Chart3.ChartAreas["ChartArea1"].AxisX.IsMarginVisible = true;
        Chart3.ChartAreas["ChartArea1"].AxisX.Interval = 1;
        Chart3.ChartAreas["ChartArea1"].AxisX.Maximum = Double.NaN;
        Chart3.ChartAreas["ChartArea1"].AxisX.Title = "kbps";

        // Setting the Y Axis
        Chart3.ChartAreas["ChartArea1"].AxisY.Interval = 2;
        Chart3.ChartAreas["ChartArea1"].AxisY.Maximum = Double.NaN;
        Chart3.ChartAreas["ChartArea1"].AxisY.Title = "Frequency";
    }

现在我的真实图表是这样的,Actual result

我想要类似这个网站的东西: Desired layout chart

你看,x 标签在左边,考虑到直方图的每一列代表一系列值的频率,这更有意义.....

任何帮助将不胜感激......

【问题讨论】:

    标签: c# css asp.net charts histogram


    【解决方案1】:

    您是否尝试添加CustomLabels 来替换默认值?例如:

    for (int i = 0; i <= 10; i++) {
        area.AxisX.CustomLabels.Add(i + 0.5, i + 1.5, i, 0, LabelMarkStyle.None);
    }
    

    前两个用于定位,第三个是标签的文本值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-31
      • 2014-05-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多