MS Chart 轴是通过数据点绘制的
MS Chart axes are drawn trough data points
我正在使用 MS 图表,但不知何故我想不出在 y 轴顶部绘制点的方法。
如下图所示,x = 0 处的点(标签 1998)位于 Y 轴下方。
有人认识到这个问题吗?它与 prepaint 和 postpaint 事件的顺序有关吗?
编辑:使用自定义绘制的点进行测试,直到 y 轴..
在 Chart
中,所有 DataPoints
超过 GridLines
但 低于 Axes
和 TickMarks
.
要在 Axes
上绘制它们,您还需要 所有者绘制 它们在 [=17] 之一=] 事件。
如果您的 ChartType
是 Points
、Spline
或 Line
类型并且您的 MarkerType
是 Circle
或 Rectangle
.
对于大多数其他类型,如 Column
或 Bar
等,这要困难得多。
这是Points
的一个简单例子;选择您更喜欢的尺码..!
private void chart1_PostPaint(object sender, ChartPaintEventArgs e)
{
if (chart1.Series.Count == 0) return;
Axis AX = chart1.ChartAreas[0].AxisX;
Axis AY = chart1.ChartAreas[0].AxisY;
chart1.ApplyPaletteColors();
foreach (Series s in chart1.Series)
foreach (DataPoint dp in s.Points)
{
float x = (float )AX.ValueToPixelPosition(dp.XValue);
float y = (float )AY.ValueToPixelPosition(dp.YValues[0]);
float w2 = 3.6f;
using (SolidBrush brush = new SolidBrush(Color.YellowGreen))
e.ChartGraphics.Graphics.FillEllipse(brush,
x - w2, y - w2, w2 * 2f, w2 * 2f);
}
}
我已经为 一些 点抑制了自定义绘图。
我正在使用 MS 图表,但不知何故我想不出在 y 轴顶部绘制点的方法。 如下图所示,x = 0 处的点(标签 1998)位于 Y 轴下方。 有人认识到这个问题吗?它与 prepaint 和 postpaint 事件的顺序有关吗?
编辑:使用自定义绘制的点进行测试,直到 y 轴..
在 Chart
中,所有 DataPoints
超过 GridLines
但 低于 Axes
和 TickMarks
.
要在 Axes
上绘制它们,您还需要 所有者绘制 它们在 [=17] 之一=] 事件。
如果您的 ChartType
是 Points
、Spline
或 Line
类型并且您的 MarkerType
是 Circle
或 Rectangle
.
对于大多数其他类型,如 Column
或 Bar
等,这要困难得多。
这是Points
的一个简单例子;选择您更喜欢的尺码..!
private void chart1_PostPaint(object sender, ChartPaintEventArgs e)
{
if (chart1.Series.Count == 0) return;
Axis AX = chart1.ChartAreas[0].AxisX;
Axis AY = chart1.ChartAreas[0].AxisY;
chart1.ApplyPaletteColors();
foreach (Series s in chart1.Series)
foreach (DataPoint dp in s.Points)
{
float x = (float )AX.ValueToPixelPosition(dp.XValue);
float y = (float )AY.ValueToPixelPosition(dp.YValues[0]);
float w2 = 3.6f;
using (SolidBrush brush = new SolidBrush(Color.YellowGreen))
e.ChartGraphics.Graphics.FillEllipse(brush,
x - w2, y - w2, w2 * 2f, w2 * 2f);
}
}
我已经为 一些 点抑制了自定义绘图。