zedgraph坐标轴设置问题

wanghaopeng 2011-05-04 04:25:23
x轴表示时间,在数据表中有专门的时间字段,要求从表中提取出时间字段加到x轴上,例如:表中时间字段值为"2011-05-04 15:21:01","2011-05-04 15:21:31","2011-05-04 15:22:01"……,现在需要在x轴上显示"15:21:01","15:21:31","15:22:01"……
...全文
713 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wanghaopeng 2011-05-09
  • 打赏
  • 举报
回复
非常感谢3楼,谢谢!
wanghaopeng 2011-05-09
  • 打赏
  • 举报
回复
自己搞出来了,贴给同问者
private void F_yjhgt_Load(object sender, EventArgs e)
{
//设置折线图名称和坐标轴名称

this.zedGraphControl1.GraphPane.Title.Text = "烘干塔温度折线图";
this.zedGraphControl1.GraphPane.XAxis.Title.Text = "时间";
this.zedGraphControl1.GraphPane.YAxis.Title.Text = "温度";
//如果坐标轴标度不想使用数值,而是使用文本,需要设置坐标轴类型为text
this.zedGraphControl1.GraphPane.XAxis.Type = AxisType.Text;
//定义一个datetime类型的变量a,用来接收数据表中日期时间类型的数据
DateTime a;
string[] szx = new string[10];
double[] szy = new double[10];
//若想从数据表的所有数据中找出最近的十条数据,可以用top关键字,该关键字的功能是将排序查询结果的前n条记录找出来
MyDS_Grid = MyDataClass.getDataSet("Select top 10 * from tb_zzt order by pczsj desc", "tb_zzt");

//若想向统计图中输出显示结果,需要注意上一步排序结果是降序,而显示时应该是升序,所以此处向数组赋值时应该反序
for (int i = 9; i >= 0; i--)
{
a = (DateTime)MyDS_Grid.Tables[0].Rows[i][0];
szx[-(i - 9)] = a.ToString("hh:mm:ss");
szy[-(i - 9)] = Convert.ToDouble(MyDS_Grid.Tables[0].Rows[i][8]);
}
//addcurve方法的几个参数分别代表了:1折线表示含义;2X轴数据;3Y轴数据;4折线颜色;5折线类型
//此处需要注意,若两坐标轴均为数值型,则直接添加到addcurve方法中即可,本实例的X轴采用了text类型,所以使用addcurve方法时
//X轴数据设置为空null,然后再在后面单独添加
LineItem myCurve = this.zedGraphControl1.GraphPane.AddCurve("温度", null, szy, Color.Red, SymbolType.Diamond);
this.zedGraphControl1.GraphPane.XAxis.Scale.TextLabels = szx;
//刷新、重绘折线图
this.zedGraphControl1.AxisChange();
this.zedGraphControl1.Refresh();

}
NemoBio 2011-05-06
  • 打赏
  • 举报
回复
myPane.XAxis.Type = AxisType.Date;
myPane.XAxis.Scale.Format = "HH:mm:ss.fff"; //显示到毫秒
//myPane.XAxis.Scale.Format = "HH:mm:ss"; //显示到秒
wanghaopeng 2011-05-06
  • 打赏
  • 举报
回复
没人回答啊?顶起来

111,125

社区成员

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

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

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