1
我有一个圆点的单曲线。是否可以将CurveItemPoints设置为不同的填充颜色?我会明显地指出不同的颜色。ZedGraph中可能会有不同颜色的曲线项填充?
我有一个圆点的单曲线。是否可以将CurveItemPoints设置为不同的填充颜色?我会明显地指出不同的颜色。ZedGraph中可能会有不同颜色的曲线项填充?
简答:没有。
要做类似的事情,我创建了额外的SymbolObj
类,并将该类的对象添加到窗格以标记一些重要的点。
下面是一些代码为:
internal class SymbolObj : ZedGraph.GraphObj
{
private ZedGraph.Symbol symbol;
public SymbolObj(ZedGraph.SymbolType type, Color color, PointF position, float size)
{
this.symbol = new ZedGraph.Symbol(type, color);
this.symbol.Size = size;
if((type== SymbolType.Plus || type == SymbolType.Star || type== SymbolType.HDash || type == SymbolType.XCross || type == SymbolType.VDash) && size >= 4)
this.symbol.Border.Width = 3f;
this.symbol.Fill.IsVisible = true;
this.symbol.Fill.Color = color;
this.Location.X = position.X;
this.Location.Y = position.Y;
}
public SymbolObj(SymbolObj rhs)
: base(rhs)
{
this.symbol = new Symbol(rhs.symbol);
}
public override void Draw(Graphics g, ZedGraph.PaneBase pane, float scaleFactor)
{
if (((GraphPane)pane).XAxis.Type == AxisType.Text)
{
if (Location.X > 0)
{
var xx = new double[(int)Location.X];
var yy = new double[(int)Location.X];
for (int i = 0; i < Location.X; i++)
{
xx[i] = i;
yy[i] = double.NegativeInfinity;
}
yy[yy.Count() - 1] = Location.Y;
LineItem line = new LineItem("Symbol", xx, yy, symbol.Fill.Color, SymbolType.None);
symbol.Draw(g, (GraphPane)pane, line, scaleFactor, false);
}
}
else
{
LineItem line = new LineItem("Symbol", new double[] { Location.X }, new double[] { Location.Y }, symbol.Fill.Color, SymbolType.None);
symbol.Draw(g, (GraphPane)pane, line, scaleFactor, false);
}
}
public override void GetCoords(ZedGraph.PaneBase pane, Graphics g, float scaleFactor, out string shape, out string coords)
{
shape = "point";
coords = this.Location.X.ToString() + ", " + this.Location.Y.ToString();
}
}
喜这对我的作品非常好!谢谢 – womisa 2011-03-24 13:33:41
我很高兴它有帮助。你应该接受我的答案,如果它帮助你,upvote,如果你觉得它很有价值等。这是自定义的stackoverflow :) – Gacek 2011-03-24 13:43:50