首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Visifire图表控件的使用「建议收藏」

1.在实际项目开展中,往往会牵扯到需要绘制图表的情况。而Visifire是一个比较美观大方的第三方图表控件,本文会讲 述如何初步使用Visifire控件。 首先我们需要从Visifire的官方网站下载:http://www.visifire.com/,新建一个项目,引入SLVisifire.Charts.dll。在 MainPage.xaml.cs代码中添加代码:using Visifire.Charts; 准备工作做好了,此时我在这里直接编写了一个函数如下: /// /// 创建一个图表 /// /// 表名字 /// 时间段的集合 /// 对应时间段集合的值 /// 本表在主Grid里面的ROW值 /// 本表在主Grid里面的column值 /// Y轴的后缀 /// 时间段间隔 /// 图表两点之间的间隔 /// 图表的X轴坐标按什么来分类,如时分秒 public void CreateChart(string tableName, List updateTime, List value, int row, int column, string rihgtStr, TimeSpan tspan, int chartInterval, IntervalTypes intervaltype) { // 创建一个图标 Chart chart = new Chart(); // 设置图标的宽度和高度 chart.Width = 500; chart.Height = 400; chart.ToolBarEnabled = true; // 设置图标的属性 chart.ScrollingEnabled = false; chart.View3D = true; // 创建一个标题的对象 Title title = new Title(); // 设置标题的名称 title.Text = tableName; title.Padding = new Thickness(0, 10, 5, 0); // 向图标添加标题 chart.Titles.Add(title); // 初始化一个新的Axis Axis xAxis = new Axis(); // 设置axis的属性 //图表的X轴坐标按什么来分类,如时分秒 xAxis.IntervalType = intervaltype; //图表中的X轴坐标间隔如2,3,20等,单位为xAxis.IntervalType设置的时分 秒。 xAxis.Interval = chartInterval; //设置X轴的时间显示格式为7-10 11:20 xAxis.ValueFormatString = “hh:mm:ss”; //给图标添加Axis chart.AxesX.Add(xAxis); Axis yAxis = new Axis(); //设置图标中Y轴的最小值永远为0 yAxis.AxisMinimum = 0; //设置图表中Y轴的后缀 yAxis.Suffix = rihgtStr; chart.AxesY.Add(yAxis); for (Int32 j = 0; j < 1; j++) { // 创建一个新的数据线。 DataSeries dataSeries = new DataSeries(); // 设置数据线的格式。 dataSeries.RenderAs = RenderAs.Line; dataSeries.XValueType = ChartValueTypes.DateTime; // 设置数据点 DataPoint dataPoint; for (int i = 0; i < updateTime.Count; i++) { // 创建一个数据点的实例。 dataPoint = new DataPoint(); // 设置X轴点 dataPoint.XValue = updateTime[i]; //设置Y轴点 dataPoint.YValue = double.Parse(value[i]); 通过此函数我们可以很方便的创建了一个Visifire图表,其创建的步骤那些我在这里不细说,大家直接看源码上的注释 就可以了。因为我使用的Visifire是免费的版本,所有会有水印,在使用的过程中可以创建一个白色背景的StackPanel 来遮盖住水印的位置。在这个函数执行的时候,还为每个DataPoint点加载了一个点击事件,处理当这些点被点击之后 触发的事件(在事件里面获取DataPoint的X轴,Y轴等,以便进行相关操作),其源码如下: dataPoint.MarkerSize = 8

03

初识visifire图表「建议收藏」

在使用过jschart之后,觉得对俺们中国人不是很友善,短时间内是不会支持中文,没法用,也就这样就认识了visifire图表,第一次浏览他的网站就被他的华丽迷上了。 从他的网站上download下来,压缩包里面已经包含了samples。 首先必须在自己的机器上面安装微软的siverlight控件,否则你是不能浏览图表的,这个好办,到微软的网站上下载就可以了。 安装好siverlight,再打开samples中的firstchart.htm,你就可以看见那个漂亮的柱状图了。可是一旦你把他发布到你的网站上去,呵呵!!打开这个网页居然是一片空白。 费了老大的劲,才搞定,原来是IIS设置导致visifire的图表显示一片空白。visifire图表要工作,必须要他bin目录下的文件支持,其中有一个visifire2.js比较好理解,因为你的网页文件必须要引用他,其中还有一个SL.Visifire.Charts.xap文件,导致visifire显示空白的原因就在这,因为被IIS咔嚓掉了,我们需要在iis的mime类型中注册 .xap为application。 设置后,再打开网站,效果出来了。 现在可以定定心研究一下他的结构了。 1.首先要引入这个js文件:<script type=”text/javascript” src=”Visifire2.js”></script> 2.声明一个div层作为容器:

3.生成图表 var vChart = new Visifire2(“SL.Visifire.Charts.xap ” , 500 , 300 ); vChart.setDataXml(chartXmlString); vChart.render(“VisifireChart”); 基本上和我前面提到的jschart差不多。其中最重要的就是 chartxmlstring,这个就是我们要表现的数据,下面是这个图表例子中的数据,采用xml语言规范,抽象出结构为: <vc:chart> <vc:chart.titles> <vc:title text=”图表的标题”/> </vc:chart.titles> <vc:chart.axesx> <vc:axis title=”x轴标签”/> <vc:chart.axesy> <vc:axis title=”y轴标签”/> </vc:chart.axesy> <vc:dataseries renderas=”pie” axisytype=”primary”> <vc:DataSeries.DataPoints> <vc:DataPoint AxisXLabel=”xlabel标记” YValue=”Y轴值” /> <vc:DataPoint AxisXLabel=”xlabel标记” YValue=”Y轴值” /> </vc:dataseries.datapoints> </vc:dataseries> </vc:chart> 了解了他的数据结构,我们做一个图表就简单了,需要修改的就是 <vc:DataPoint AxisXLabel=”xlabel标记” YValue=”Y轴值” />这里.我们大多数情况的时候都是从数据库中调取数据,那如何处理呢! visifire chart的帮助文档里面有一个实例文件,不过感觉不是很很好. 我希望的结果应该是 varchar.setdataxml(xml.xml),里面是一个xml文件,或者是一个动态程序文件.前几天使用jschart,可以这样使用的,也不知道visifire可不可行. 图表样式很多,其实好多参数我们根本不用去记,只需要到他的网站上进入设计界面,即可以来个所见即所得的图表,然后将代码拷贝过来就可以了,绝对傻瓜式. 以前用过dundas的图表控件,觉得效果不错,但是现在一用visifire,觉得好像更好些。

02

Python 利用Python操作excel表格之openyxl介绍Part2

## 绘图 c = LineChart() # 设置图标类型:LineChart 连线图 AreaChart 面积图 c.title = 'CPU利用率' # 设置生成图的报告名称 c.style = 10 # 设置图例样式 c.y_axis.title = '百分比' # 设置 Y 轴名称 c.x_axis.title = '时间' # 设置 X 轴名称 c.y_axis.scaling.min = 0 # 设置y轴坐标最的小值 c.y_axis.majorUnit = 10 # 设置主y轴坐标,两个“坐标刻度”直接的间隔 c.y_axis.scaling.max = 100 # 设置主y轴坐标的最大值 # 设置 data引用数据源:第2列到第列(包括第2,10列),第1行到第30行,包括第1, 30行 data = Reference(sheet, min_col=2, max_col=10, min_row=1, max_row=30) c.add_data(data, titles_from_data=True) # 设置x轴 坐标值,即轴标签(Label)(从第3列,第2行(包括第2行)开始取数据直到第30行(包括30行)) x_labels = Reference(sheet, min_col=1, min_row=2, max_row=30) c.set_categories(x_labels) c.width = 18 # 设置图表的宽度 单位 cm c.height = 8 # 设置图表的高度 单位 cm # 设置插入图表位置 cell = "A10" sheet.add_chart(c, cell) # 绘制双y坐标轴图表 sheet = work_book['DEV'] c1 = AreaChart() # 面积图 c1.title = '磁盘活动统计报告' c1.style = 10 # 10 13 11 c1.y_axis.title = '平均时长(毫秒)' c1.x_axis.title = '时间' c1.y_axis.majorGridlines = None first_row = [] # 存储第一行记录 # 获取第一行记录 for row in sheet.rows: for cell in row: first_row.append(cell.value) break # 拼接系列的方式 target_columns = ['await', 'svctm'] for target_column in target_columns: index = first_row.index(target_column) ref_obj = Reference(sheet, min_col=index + 1, min_row=2, max_row=300) series_obj = Series(ref_obj, title=target_column) c1.append(series_obj) x_labels = Reference(sheet, min_col=1, min_row=2, max_row=300) c1.set_categories(x_labels) c1.width = 18 c1.height = 8 c2 = LineChart() c2.y_axis.title = '磁盘利用率' c2.y_axis.scaling.min = 0 # 设置y轴坐标最的小值 #c2.y_axis.majorUnit = 5 # 设置主y轴坐标的坐标单位 c2.y_axis.scaling.max = 100 # 设置主y轴坐标的最大值 ref_obj = Reference(sheet, min_col=8, min_row=2, max_row=300) series_obj = Series(ref_obj, title='%util') c2.append(series_obj) s = c2.series[0] # 获取添加第一个系列 # 设置线条填充颜色,也是图例的颜色 s.graphicalProperties.line.solidFill = "DEB887" # 设置线形 可选值如下: # ['solid', 'dot', 'dash', 'lgDash', 'dashDo

02
领券