Как нарисовать вторую кривую на основе оси Y2, в то время как первая кривая основана на оси Y? - PullRequest
3 голосов
/ 03 ноября 2011

Я использую ZedGraph.

У меня есть 2 кривые для рисования, первая кривая основана на шкале YAxis, а вторая - на оси Y2, значение в первой кривой намного больше, чем второе значение. В моем проекте обе кривые основаны на YAxis, что делает график уродливым.

Есть ли у кого-нибудь опыт рисовать вторую кривую на основе оси Y2?

Вот мой код: (Что мне изменить?)

PointPairList p1 = new PointPairList(),
p2 = new PointPairList();
//code to add data into p1 and p2

GraphPane gp = new GraphPane();
gp.AddCurve(p1, "", Color.Black);
gp.AddCurve(p2, "", Color.Blue);

gp.XAxis.Scale.Min = v1;
gp.Y2Axis.Scale.Max = v2;
gp.AxisChange(); 
gp.XAxis.Scale.IsUseTenPower = false; 
gp.Y2Axis.Scale.IsUseTenPower=false;

Спасибо.


Если я хочу установить Y2Axis, совместно использовать ту же сетку Y1Axis, после:

LineItem curveY2 = gp.AddCurve(p2, "", Color.Blue);

...

curveY2 .IsY2Axis = true;

Т.е., сетка основана на Y1Axis, тогда Y2Axis имеет ту же сетку, но с другой меткой. Например, Y1Axis имеет значение от 1 до 300 и имеет 7 строк, однако Y2Axis имеет от 1 до 20, я хочу, чтобы Y2Axis также имел 7 строк (так же, как Y1Axis), какую функцию следует использовать

1 Ответ

4 голосов
/ 03 ноября 2011
LineItem curveY2 = gp.AddCurve(p2, "", Color.Blue);
...
curveY2 .IsY2Axis = true;
//If you have more than one axis on the related side, you have to assign the index of the axis
curveY2 .YAxisIndex = 0;
...