c#用ZedGraph控件画折线图

顽皮小熊 2011-10-08 07:42:22
我想用ZedGraph控件画折线图,但是我的数值点的连接线不是连续的,我希望做的图形参考http://blog.csdn.net/happyxyzw/article/details/6853471 ,这个图上面的折线是选择固定的一些点连接成线,怎么实现呢?
...全文
262 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiongxyt2 2011-10-09
  • 打赏
  • 举报
回复

private void DrawLine(ZedGraphControl zgc)
{
GraphPane myPane = zgc.GraphPane;
List<PointPairList> DataSource = new List<PointPairList>();
myPane.Title.Text = "用户访问曲线图";
myPane.XAxis.Title.Text= "月份";
myPane.YAxis.Title.Text = "用户访问数量";
Random rand = new Random();
//for (int i = 0; i < 3; i++)
//{
ZedGraph.PointPairList ppl = new ZedGraph.PointPairList();

for (double x = 0; x < 5; x += 1.0)
{
double y = rand.NextDouble() * 1000;
ppl.Add(x, y);
}
myPane.AddCurve("as" + 1.ToString(), ppl, Color.Red, SymbolType.None);
//}


ZedGraph.PointPairList pp2 = new ZedGraph.PointPairList();

for (double x = 6; x < 10; x += 1.0)
{
double y = rand.NextDouble() * 1000;
pp2.Add(x, y);
}
myPane.AddCurve("as" + 3.ToString(), pp2, Color.Red, SymbolType.None);

zgc.AxisChange();

//重绘控件
Refresh();
}
mabaolin 2011-10-09
  • 打赏
  • 举报
回复
ls正解。 当成多条曲线处理。
xiongxyt2 2011-10-08
  • 打赏
  • 举报
回复
不连续的话,就可以看成多个连续的嘛

private void picBox_Paint(object sender, PaintEventArgs e)
{
float[] month = new float[12];
for (int i = 0; i < 12; i++)
{
month[i] = i + 1;
}

float[] d = new float[12] { 20.5f, 60, 10.8f, 15.6f, 30, 70.9f, 50.3f, 30.7f, 70, 50.4f, 30.8f, 20};
picBox.SizeMode = PictureBoxSizeMode.Zoom;
CurvePaint cp = new CurvePaint();
cp.XkeduCount = 10;
cp.YkeduCount = 10;
cp.XvalueStrMoveleft = 15;
picBox.Image = cp.drawCurve(month, d, "某工厂某产品月生产量图表", "月份", "产量(万)");

}


画不连续的就当成多个连续的
比如把上面的month分成month1(x轴坐标,1-6月)、d1(y坐标前六个数)和month2、d2
还有不连续的就多分啊,有几个就用几次drawCurve把他们通通话出来就是了。
皇城龙三 2011-10-08
  • 打赏
  • 举报
回复
可以考虑不连续部分的的颜色和底色一样或者透明
Gemini Dean 2011-10-08
  • 打赏
  • 举报
回复

这个没画过,连续的画过。我个人觉得判断是不是有数值,然后再进行要不要在这两点之间画线就好

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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