请教一个绘制多图zedGraph的问题

pestlyn 2012-04-05 09:59:12
我在绘制一个多图的zedGraph的时候 无法控制其中的的 GraphPane的高度和宽度,老是会出现 图的纵坐标显示不全,各个图的大小不好控制的情况。
我现在想显示3个曲线图在一个控件上。前两个图的大小太大,最后一个图的大小又太小,求教各位啦。

private void Form1_Load(object sender, EventArgs e)
{
MasterPane master = zedGraphControl1.MasterPane;
master.Fill = new Fill(Color.White, Color.FromArgb(220, 220, 255), 45.0f);
master.PaneList.Clear();
master.Title.IsVisible = true;
master.Title.Text = "感光电压曲线图";
master.Margin.All = 10;
master.InnerPaneGap = 0;
ColorSymbolRotator rotator = new ColorSymbolRotator();
for (int j = 0; j < 3; j++)
{
GraphPane myPaneT = new GraphPane(new Rectangle(40, 40, 500, 250),
"Case #" + (j+1).ToString(),
"时间",
"电压");
myPaneT.Fill.IsVisible = false;
myPaneT.Chart.Fill = new Fill(Color.White, Color.LightYellow, 45.0F);
myPaneT.BaseDimension = 2.0F;
myPaneT.XAxis.Title.IsVisible = false;
myPaneT.XAxis.Scale.IsVisible = false;
myPaneT.Legend.IsVisible = false;
myPaneT.Border.IsVisible = false;
myPaneT.Title.IsVisible = false;
myPaneT.XAxis.MajorTic.IsOutside = false;
myPaneT.XAxis.MinorTic.IsOutside = false;
myPaneT.XAxis.MajorGrid.IsVisible = true;
myPaneT.XAxis.MinorGrid.IsVisible = true;
myPaneT.XAxis.Scale.Max = 50;
myPaneT.XAxis.Scale.Min = 0;
myPaneT.Margin.All = 0;
LineItem myCurve = null;
if (j == 0)
{
myPaneT.YAxis.Scale.MinorStep = 0.1;
myPaneT.YAxis.Scale.MajorStep = 1;
myPaneT.YAxis.Scale.Max = 5;
myPaneT.YAxis.Scale.Min = 0;
myPaneT.Margin.Top =0;
myPaneT.YAxis.Title.Text = "I1";
myCurve = myPaneT.AddCurve("Step " + j.ToString(), listI1, rotator.NextColor, SymbolType.None);
myCurve.Line.StepType = StepType.ForwardStep;
myCurve.Symbol.Fill = new Fill(Color.Red);
master.Add(myPaneT);
this.zedGraphControl1.AxisChange();
}
if(j==1)
{
myPaneT.YAxis.Scale.MinorStep = 0.1;
myPaneT.YAxis.Scale.MajorStep = 1;
myPaneT.YAxis.Scale.Max = 5;
myPaneT.YAxis.Scale.Min = 0;
myPaneT.XAxis.Scale.MinorStep = 1;
myPaneT.Margin.Top = 0;
myPaneT.YAxis.Title.Text = "I2";
myCurve = myPaneT.AddCurve("Step " + j.ToString(), listI2, rotator.NextColor, SymbolType.None);
myCurve.Symbol.Fill = new Fill(Color.Red);
master.Add(myPaneT);
this.zedGraphControl1.AxisChange();
}
if (j == 2)
{
//myPaneT.YAxis.Scale.Max = files.ReadInteger("SYSTEM", "DISPLAY_VOLTAGE2", 5);
//myPaneT.YAxis.Scale.Min = files.ReadInteger("SYSTEM", "DISPLAY_VOLTAGE1", -5);
myPaneT.XAxis.Title.IsVisible = true;
myPaneT.XAxis.Scale.IsVisible = true;
myPaneT.XAxis.Scale.MinorStep = 1;
myPaneT.Margin.Top =0;
myPaneT.YAxis.Title.Text = "I3";
myCurve = myPaneT.AddCurve("Step " + j.ToString(), list, rotator.NextColor, SymbolType.None);
myCurve.Symbol.Fill = new Fill(Color.Red);
myPaneT.YAxis.Scale.Max=10;
myPaneT.YAxis.Scale.Min= -10;
master.Add(myPaneT);
this.zedGraphControl1.AxisChange();
}
if (j > 0)
myPaneT.YAxis.Scale.IsSkipLastLabel = true;
myPaneT.YAxis.MinSpace =10;
myPaneT.Y2Axis.MinSpace =10;
//this.zedGraphControl1.AxisChange();
printMessage("窗体加载完成");
}
using (Graphics g = zedGraphControl1.CreateGraphics())
{
ZedGraphControl z1 = zedGraphControl1;

master.SetLayout(g, PaneLayout.SingleColumn);
z1.AxisChange();
z1.IsAutoScrollRange = true;
z1.IsShowHScrollBar = true;
z1.IsShowVScrollBar = true;
z1.IsSynchronizeXAxes = true;
}
}
...全文
171 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
pestlyn 2012-04-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

哥们这个是c# 是asp。net 不是asp 请移动帖子到asp。net版
[/Quote]
哥们 我号被封了 。看看有没有人会的 免得再去组侧
十一文 2012-04-05
  • 打赏
  • 举报
回复
哥们这个是c# 是asp。net 不是asp 请移动帖子到asp。net版

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧