一种基于云平台的出版物图形生成方法与流程

文档序号:16530072发布日期:2019-01-05 10:40阅读:178来源:国知局

本发明涉及一种基于云平台的出版物图形生成方法,特别涉及的是基于saas技术的图形生成技术。



背景技术:

随着信息技术的高速发展以及云计算技术的出现,所有信息数据都将放在云中包括图形数据,但是一般我们的图形生成都是将数据导入excel电子表格,然后使用excel内置的绘图功能手动生成图形。这种做法适用于大多数情况,但是如果基础数据频繁更改,则手动创建图形可能很快就变得枯燥乏味,基于上述原因,本人发明了一种简单又快速的图形生成方法。



技术实现要素:

一种基于云平台的出版物图形生成方法;本方法是利用vs2008中的dynamicdatadisplay类库以及自定义的buginfo类、loadbuginfo方法及构建数组等一些例操作实现此方法,此步骤:

(1).首先声明一个泛型列表对象buginfolist,并使用一个程序定义的帮助器方法(名为loadbuginfo)将文件buginfo.txt中的虚拟数据填充到该列表中;

publicclassbuginfo{

publicdatetimedate;

publicintnumberopen;

publicintnumberclosed;

publicbuginfo(datetimedate,intnumberopen,intnumberclosed){

this.date=date;

this.numberopen=numberopen;

this.numberclosed=numberclosed;

}

}

利用loadbuginfo方法打开文件并遍历该文件,分析每个字段,然后实例化buginfo对象,并将每个buginfo对象存储到结果列表中。

privatestaticlist<buginfo>loadbuginfo(stringfilename)

{

varresult=newlist<buginfo>();

filestreamfs=newfilestream(filename,filemode.open);

streamreadersr=newstreamreader(fs);

stringline="";

while((line=sr.readline())!=null)

{

string[]pieces=line.split(':');

datetimed=datetime.parse(pieces[0]);

intnumopen=int.parse(pieces[1]);

intnumclosed=int.parse(pieces[2]);

buginfobi=newbuginfo(d,numopen,numclosed);

result.add(bi);

}

sr.close();

fs.close();

returnresult;

}

使用file.readalllines方法将数据文件中的所有行读入一个字符串数组,对三个数组进行声明并赋值.

datetime[]dates=newdatetime[buginfolist.count];

int[]numberopen=newint[buginfolist.count];

int[]numberclosed=newint[buginfolist.count];

for(inti=0;i<buginfolist.count;++i)

{

dates[i]=buginfolist[i].date;

numberopen[i]=buginfolist[i].numberopen;

numberclosed[i]=buginfolist[i].numberclosed;

}

将数据数组转换为特殊的enumerabledatasource类型.

vardatesdatasource=newenumerabledatasource<datetime>(dates);

datesdatasource.setxmapping(x=>dateaxis.converttodouble(x));

varnumberopendatasource=newenumerabledatasource<int>(numberopen);

numberopendatasource.setymapping(y=>y);

varnumbercloseddatasource=newenumerabledatasource<int>(numberclosed);

numbercloseddatasource.setymapping(y=>y);

(2)对于dynamicdatadisplay库,要绘制的所有数据都必须为统一格式。只是将三个数据数组传递给泛型enumerabledatasource构造函数。此外,必须告知该库与每个数据源关联的轴(x轴或y轴)。setxmapping和setymapping方法接受将方法委托作为参数。使用了lambda表达式来创建匿名方法,而不是定义显式委托。dynamicdatadisplay库的基本轴数据类型是double。setxmapping和setymapping方法将我的特殊数据类型映射到double类型。

在x轴上,使用converttodouble方法将datetime数据显式转换为double类型。在y轴上,我只是编写y=>y(读作“y转为y”),将输入inty隐式转换为输出doubley。我也可以通过编写setymapping(y=>convert.todouble(y)来显式进行类型映射。可以任意选择x和y作为lambda表达式的参数,即,我可以使用任意参数名称。

addlinegraph方法接受compositedatasource,后者定义要绘制的错误以及有关确切的绘制方式的信息。此处,我指示名为plotter的绘图器对象执行以下操作:使用粗细为2的蓝色线条绘制一个图形,放置具有红色边框和红色填充且大小为10的圆圈标记,并添加系列标题numberbugsopen。作为许多备选方法中的一种(plotter.addlinegraph(compositedatasource1,colors.red,1,"numberopen"))可以使用来绘制不带标记的细红色线条也可以创建虚线而不是实线:

pendashedpen=newpen(brushes.magenta,3);

dashedpen.dashstyle=dashstyles.dashdot;

plotter.addlinegraph(compositedatasource1,dashedpen,

newpendescription("openbugs"));

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1