【问题标题】:Microsoft Charting - Make Y Axis Always VisibleMicrosoft Charting - 使 Y 轴始终可见
【发布时间】:2012-10-12 20:41:26
【问题描述】:

我正在用 C# 创建一个 Microsoft 图表。它工作正常,但是当没有数据时 Y 轴消失。我希望 Y 轴始终可见。我试图找到一种方法来解决它,但我无法解决。

这是我的代码:

Chart chart = new Chart {
  AntiAliasing = AntiAliasingStyles.All,
  TextAntiAliasingQuality = TextAntiAliasingQuality.High,
  BackColor = Color.FromArgb(250, 250, 250),
  Height = size.Height,
  Width = size.Width
};

chart.Legends.Clear();

ChartArea area = new ChartArea {
  BackColor = Color.Transparent,
  BorderColor = Color.FromArgb(240, 240, 240),
  BorderWidth = 1,
  BorderDashStyle = ChartDashStyle.Solid,
  AxisX = new Axis {
    Enabled = AxisEnabled.True,
    IntervalAutoMode = IntervalAutoMode.VariableCount,
    IsLabelAutoFit = true,
    IsMarginVisible = true,
    LabelStyle = new LabelStyle { ForeColor = Color.FromArgb(100, 100, 100), Font = new Font("Arial", 10, FontStyle.Regular) },
    LineColor = Color.FromArgb(220, 220, 220),
    MajorGrid = new Grid { LineColor = Color.FromArgb(240, 240, 240), LineDashStyle = ChartDashStyle.Solid },
    MajorTickMark = new TickMark { LineColor = Color.FromArgb(220, 220, 220), Size = 4.0f },
  },
  AxisY = new Axis {
    Enabled = AxisEnabled.True,
    IntervalAutoMode = IntervalAutoMode.VariableCount,
    IsLabelAutoFit = true,
    IsMarginVisible = true,
    LabelStyle = new LabelStyle { ForeColor = Color.FromArgb(100, 100, 100), Font = new Font("Arial", 10, FontStyle.Regular) },
    LineColor = Color.Transparent,
    MajorGrid = new Grid { LineColor = Color.FromArgb(240, 240, 240), LineDashStyle = ChartDashStyle.Solid },
    MajorTickMark = new TickMark { LineColor = Color.FromArgb(240, 240, 240), Size = 2.0f }
  },
  Position = new ElementPosition { Height = 100, Width = 100, X = 0, Y = 0 }
};

chart.ChartAreas.Add(area);

area.AxisX.LabelStyle.Format = "H:mm";
area.AxisX.LabelStyle.IntervalType = DateTimeIntervalType.Hours;

Series series = new Series {
  CustomProperties = "PointWidth = 1",
  IsXValueIndexed = true,
  XValueType = (ChartValueType)Enum.Parse(typeof(ChartValueType), x.Data.GetType().GetGenericArguments()[0].Name)
};

series.BorderWidth = 2;
series.BorderColor = Color.FromArgb(84, 164, 232);
series.ChartType = SeriesChartType.Area;
series.Color = Color.FromArgb(222, 234, 244);

series.Points.DataBindXY(x.Data, s.Data);

chart.Series.Add(series);

【问题讨论】:

    标签: charts data-visualization mschart


    【解决方案1】:

    据我所知,这是不可能的。

    作为解决方法,您可以添加另一个带有单个数据点的虚拟“线”系列。对于单个数据点,线不会被绘制 - 但会显示轴。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-12
      • 2013-01-07
      • 1970-01-01
      • 1970-01-01
      • 2017-03-26
      • 2012-02-06
      相关资源
      最近更新 更多