我正在使用ZedGraph来绘制数据。 ZedGraph非常棒,能够以很好的表现绘制许多曲线,但需要一些时间来弄清楚这些技巧。 我在网上进行了很多研究,但我没有找到任何关于文本标签y轴的解决方案 我有一个Y2轴类型线性我绘制我的曲线,我有Yaxis type = text我想显示textlabel 但我希望textlabel [index]与y2 [index]值对齐。 为了更好地理解, 我以这种格式从数据库中读取数据: ---- Col1 ------ Col2 -------- Col3
---- A ---------- 122.3 ------- 05:22:00
---- B ---------- 150.3 ------- 06:33:22
我尝试编辑scale.majorStep,scale.min或ScaleFormatEvent但是我不能将textlabel Yaxis与数据Y2axis对齐,因为y2轴点是可变的。 这是代码
chart2.GraphPane.CurveList["curve1"].AddPoint((XDate)(Col3[i]), Col2[i]);
myPane02m.Y2Axis.Type = ZedGraph.AxisType.Linear;
myPane02m.YAxis.Type = ZedGraph.AxisType.Text
myPane02m.YAxis.Scale.TextLabels = Col1;
myPane02m.YAxis.Scale.Min = minY;
myPane02m.YAxis.Scale.Max = maxY;
myPane02m.Y2Axis.Scale.Min = minY;
myPane02m.Y2Axis.Scale.Max = maxY;
myPane02m.YAxis.Scale.MajorStep = Offset;
myPane02m.YAxis.Scale.MinorStep = Offset;
myPane02m.Y2Axis.Scale.MajorStep = Offset;
myPane02m.Y2Axis.Scale.MinorStep = Offset;
public string MyCustomFormatter(GraphPane pane, Axis axis, double val, int index)
{
if (index < numberPoint)
{
string label = getCol1().ElementAt(index).ToString();
//MessageBox.Show(label);
return label;
//}
}
else
{
return "";
}
}
`
`
我希望textlabel(Column1)位于y轴,Col2位于y2轴
如果有人为我的问题找到解决方案,那将会很棒 感谢
答案 0 :(得分:0)
有一个解决方案:
是使用Textobj并将X = 0
double label1Y = Curve.Points[i].Y; //LineItem
TextObj txtObj1 = new TextObj(Column1.ToString() + " " + label1Y.ToString("0.0"), 0, label1Y, ZedGraph.CoordType.XChartFractionYScale, ZedGraph.AlignH.Right, ZedGraph.AlignV.Center);
txtObj1.FontSpec.Border.IsVisible = false;
txtObj1.FontSpec.Fill.IsVisible = false;
txtObj1.FontSpec.Size = 5f;
txtObj1.FontSpec.IsAntiAlias = true;
txtObj1.FontSpec.Angle = 0;
// MessageBox.Show(txtObj1.FontSpec.StringAlignment.ToString());
txtObj1.IsVisible = true;
//txtObj1.Location.
txtObj1.ZOrder = ZOrder.A_InFront;
//txtObj1.IsInFrontOfData(true);
chart2.GraphPane.GraphObjList.Add(txtObj1);