【问题标题】:ZedGraph TextLabels: align text labels on yaxis with data of y2axis (double)ZedGraph TextLabels:将 yaxis 上的文本标签与 y2axis 的数据对齐(双精度)
【发布时间】:2017-05-19 13:21:08
【问题描述】:

我正在使用 ZedGraph 绘制数据。 ZedGraph 非常适合绘制许多性能良好的曲线,但需要一些时间来找出技巧。 我在网上做了很多研究,但在 textlabels y 轴上没有找到任何解决方案 我有一个 Y2axis 类型线性,我在其中绘制曲线,并且我有 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,但我无法将文本标签 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 轴

如果有人找到我的问题的解决方案,那就太棒了 谢谢

【问题讨论】:

    标签: c# zedgraph


    【解决方案1】:

    有一个解决方案:

    就是使用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);
    

    【讨论】:

      猜你喜欢
      • 2016-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-02
      • 2013-04-21
      • 2015-10-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多