WPF、Silverlight项目中使用柱状图、饼状图、折线图
在开发的过程中,可能会遇到柱状图、饼状图、折线图来更好的显示数据,最近整理了一下,遂放出来望需要的朋友可以参考。本文仅仅是简单显示,如需复杂显示效果请参考官网代码示例。----本文代码使用WPF,Silverlight类似代码,使用第三方wpf_visifire_v5.1.2-0_trial控件。
后续会放上Html5示例。
代码下载地址:代码下载
先放上一组截图吧:
公共数据:
private List<string> strListx = new List<string>() { "苹果", "樱桃", "菠萝", "香蕉", "榴莲", "葡萄", "桃子", "猕猴桃" };
private List<string> strListy = new List<string>() { "13", "75", "60", "38", "97", "22", "39", "80" }; private List<DateTime> LsTime = new List<DateTime>()
{
new DateTime(2012,1,1),
new DateTime(2012,2,1),
new DateTime(2012,3,1),
new DateTime(2012,4,1),
new DateTime(2012,5,1),
new DateTime(2012,6,1),
new DateTime(2012,7,1),
new DateTime(2012,8,1),
new DateTime(2012,9,1),
new DateTime(2012,10,1),
new DateTime(2012,11,1),
new DateTime(2012,12,1),
};
private List<string> cherry = new List<string>() { "33", "75", "60", "98", "67", "88", "39", "45", "13", "22", "45", "80" };
private List<string> pineapple = new List<string>() { "13", "34", "38", "12", "45", "76", "36", "80", "97", "22", "76", "39" };
柱状图:
public void CreateChartColumn(string name, List<string> valuex, List<string> valuey)
{
//创建一个图标
Chart chart = new Chart(); //设置图标的宽度和高度
chart.Width = ;
chart.Height = ;
chart.Margin = new Thickness(, , , );
//是否启用打印和保持图片
chart.ToolBarEnabled = false; //设置图标的属性
chart.ScrollingEnabled = false;//是否启用或禁用滚动
chart.View3D = true;//3D效果显示 //创建一个标题的对象
Title title = new Title(); //设置标题的名称
title.Text = Name;
title.Padding = new Thickness(, , , ); //向图标添加标题
chart.Titles.Add(title); Axis yAxis = new Axis();
//设置图标中Y轴的最小值永远为0
yAxis.AxisMinimum = ;
//设置图表中Y轴的后缀
yAxis.Suffix = "斤";
chart.AxesY.Add(yAxis); // 创建一个新的数据线。
DataSeries dataSeries = new DataSeries(); // 设置数据线的格式
dataSeries.RenderAs = RenderAs.StackedColumn;//柱状Stacked // 设置数据点
DataPoint dataPoint;
for (int i = ; i < valuex.Count; i++)
{
// 创建一个数据点的实例。
dataPoint = new DataPoint();
// 设置X轴点
dataPoint.AxisXLabel = valuex[i];
//设置Y轴点
dataPoint.YValue = double.Parse(valuey[i]);
//添加一个点击事件
dataPoint.MouseLeftButtonDown += new MouseButtonEventHandler(dataPoint_MouseLeftButtonDown);
//添加数据点
dataSeries.DataPoints.Add(dataPoint);
} // 添加数据线到数据序列。
chart.Series.Add(dataSeries); //将生产的图表增加到Grid,然后通过Grid添加到上层Grid.
Grid gr = new Grid();
gr.Children.Add(chart);
Simon.Children.Add(gr);
}
饼状图:
public void CreateChartPie(string name, List<string> valuex, List<string> valuey)
{
//创建一个图标
Chart chart = new Chart(); //设置图标的宽度和高度
chart.Width = ;
chart.Height = ;
chart.Margin = new Thickness(, , , );
//是否启用打印和保持图片
chart.ToolBarEnabled = false; //设置图标的属性
chart.ScrollingEnabled = false;//是否启用或禁用滚动
chart.View3D = true;//3D效果显示 //创建一个标题的对象
Title title = new Title(); //设置标题的名称
title.Text = name;
title.Padding = new Thickness(, , , ); //向图标添加标题
chart.Titles.Add(title); //Axis yAxis = new Axis();
////设置图标中Y轴的最小值永远为0
//yAxis.AxisMinimum = 0;
////设置图表中Y轴的后缀
//yAxis.Suffix = "斤";
//chart.AxesY.Add(yAxis); // 创建一个新的数据线。
DataSeries dataSeries = new DataSeries(); // 设置数据线的格式
dataSeries.RenderAs = RenderAs.Pie;//柱状Stacked // 设置数据点
DataPoint dataPoint;
for (int i = ; i < valuex.Count; i++)
{
// 创建一个数据点的实例。
dataPoint = new DataPoint();
// 设置X轴点
dataPoint.AxisXLabel = valuex[i]; dataPoint.LegendText = "##" + valuex[i];
//设置Y轴点
dataPoint.YValue = double.Parse(valuey[i]);
//添加一个点击事件
dataPoint.MouseLeftButtonDown += new MouseButtonEventHandler(dataPoint_MouseLeftButtonDown);
//添加数据点
dataSeries.DataPoints.Add(dataPoint);
} // 添加数据线到数据序列。
chart.Series.Add(dataSeries); //将生产的图表增加到Grid,然后通过Grid添加到上层Grid.
Grid gr = new Grid();
gr.Children.Add(chart);
Simon.Children.Add(gr);
}
折线图:
public void CreateChartSpline(string name, List<DateTime> lsTime, List<string> cherry, List<string> pineapple)
{
//创建一个图标
Chart chart = new Chart(); //设置图标的宽度和高度
chart.Width = ;
chart.Height = ;
chart.Margin = new Thickness(, , , );
//是否启用打印和保持图片
chart.ToolBarEnabled = false; //设置图标的属性
chart.ScrollingEnabled = false;//是否启用或禁用滚动
chart.View3D = true;//3D效果显示 //创建一个标题的对象
Title title = new Title(); //设置标题的名称
title.Text = name;
title.Padding = new Thickness(, , , ); //向图标添加标题
chart.Titles.Add(title); //初始化一个新的Axis
Axis xaxis = new Axis();
//设置Axis的属性
//图表的X轴坐标按什么来分类,如时分秒
xaxis.IntervalType = IntervalTypes.Months;
//图表的X轴坐标间隔如2,3,20等,单位为xAxis.IntervalType设置的时分秒。
xaxis.Interval = ;
//设置X轴的时间显示格式为7-10 11:20
xaxis.ValueFormatString = "MM月";
//给图标添加Axis
chart.AxesX.Add(xaxis); Axis yAxis = new Axis();
//设置图标中Y轴的最小值永远为0
yAxis.AxisMinimum = ;
//设置图表中Y轴的后缀
yAxis.Suffix = "斤";
chart.AxesY.Add(yAxis); // 创建一个新的数据线。
DataSeries dataSeries = new DataSeries();
// 设置数据线的格式。
dataSeries.LegendText = "樱桃"; dataSeries.RenderAs = RenderAs.Spline;//折线图 dataSeries.XValueType = ChartValueTypes.DateTime;
// 设置数据点
DataPoint dataPoint;
for (int i = ; i < lsTime.Count; i++)
{
// 创建一个数据点的实例。
dataPoint = new DataPoint();
// 设置X轴点
dataPoint.XValue = lsTime[i];
//设置Y轴点
dataPoint.YValue = double.Parse(cherry[i]);
dataPoint.MarkerSize = ;
//dataPoint.Tag = tableName.Split('(')[0];
//设置数据点颜色
// dataPoint.Color = new SolidColorBrush(Colors.LightGray);
dataPoint.MouseLeftButtonDown += new MouseButtonEventHandler(dataPoint_MouseLeftButtonDown);
//添加数据点
dataSeries.DataPoints.Add(dataPoint);
} // 添加数据线到数据序列。
chart.Series.Add(dataSeries); // 创建一个新的数据线。
DataSeries dataSeriesPineapple = new DataSeries();
// 设置数据线的格式。 dataSeriesPineapple.LegendText = "菠萝"; dataSeriesPineapple.RenderAs = RenderAs.Spline;//折线图 dataSeriesPineapple.XValueType = ChartValueTypes.DateTime;
// 设置数据点 DataPoint dataPoint2;
for (int i = ; i < lsTime.Count; i++)
{
// 创建一个数据点的实例。
dataPoint2 = new DataPoint();
// 设置X轴点
dataPoint2.XValue = lsTime[i];
//设置Y轴点
dataPoint2.YValue = double.Parse(pineapple[i]);
dataPoint2.MarkerSize = ;
//dataPoint2.Tag = tableName.Split('(')[0];
//设置数据点颜色
// dataPoint.Color = new SolidColorBrush(Colors.LightGray);
dataPoint2.MouseLeftButtonDown += new MouseButtonEventHandler(dataPoint_MouseLeftButtonDown);
//添加数据点
dataSeriesPineapple.DataPoints.Add(dataPoint2);
}
// 添加数据线到数据序列。
chart.Series.Add(dataSeriesPineapple); //将生产的图表增加到Grid,然后通过Grid添加到上层Grid.
Grid gr = new Grid();
gr.Children.Add(chart); Simon.Children.Add(gr);
}
WPF、Silverlight项目中使用柱状图、饼状图、折线图的更多相关文章
- Python的可视化包 – Matplotlib 2D图表(点图和线图,.柱状或饼状类型的图),3D图表(曲面图,散点图和柱状图)
Python的可视化包 – Matplotlib Matplotlib是Python中最常用的可视化工具之一,可以非常方便地创建海量类型地2D图表和一些基本的3D图表.Matplotlib最早是为了可 ...
- Intellij IDEA 中如何查看maven项目中所有jar包的依赖关系图(转载)
Intellij IDEA 中如何查看maven项目中所有jar包的依赖关系图 2017年04月05日 10:53:13 李学凯 阅读数:104997更多 所属专栏: Intellij Idea ...
- 【Excel】绘图案例_常见复合图:簇状图+堆积图+折线图
前言 最近有朋友让我帮忙用excel画图,老实说我很讨厌用excel画图,点来点去,复杂一些还不能复用,非常繁琐.当然,入门也很简单.需求时不同城市.不同产品的2016和2017销量及环比数据,这应该 ...
- HighCharts中的无主题的2D折线图
HighCharts中的无主题的2D折线图 1.设计源码 <!DOCTYPE html> <html> <head> <meta charset=" ...
- HighCharts中的Ajax请求的2D折线图
HighCharts中的Ajax请求的2D折线图 设计源码: <!DOCTYPE html> <html> <head> <meta charset=&quo ...
- PSP 进度条 柱状图 饼状图
9号 类别 开始时间 结束时间 间隔 净时间 燃尽图 8::00 8:20 0 20分钟 站立会议 8:20 8:50 0 30分钟 读构建之法 9:20 13:20 120分钟 120分钟 四人小组 ...
- AngularJS in Action读书笔记5(实战篇)——在directive中引入D3饼状图显示
前言: "宁肯像种子一样等待 也不愿像疲惫的陀螺 旋转得那样勉强" 这是前几天在查资料无意间看到的一位园友的签名,看完后又读了两遍,觉得很有味道.后来一寻根究底才知这是出资大诗 ...
- JupyterLab绘制:柱状图,饼状图,直方图,散点图,折线图
JupyterLab绘图 喜欢python的同学,可以到 https://v3u.cn/(刘悦的技术博客) 里面去看看,爬虫,数据库,flask,Django,机器学习,前端知识点,JavaScrip ...
- 使用WinForm Chart控件 制作饼装,柱状,折线图
http://blog.csdn.net/dream2050csdn/article/details/53510340 chart控件的属性很多,主要用到Chart控件图表区域的属性有五个属性 1.A ...
随机推荐
- ArrayList常用方法
ArrayList常用方法 import java.util.*; public class JIHe04 { // ArrayList add 添加方法 public static void fun ...
- ORACLE中CONSTRAINT的四对属性
ORACLE中CONSTRAINT的四对属性 summary:在data migrate时,某些表的约束总是困扰着我们,让我们的migratet举步维艰,怎样利用约束本身的属性来处理这些问题呢?本文具 ...
- 在安卓开发中使用SQLite数据库操作实例
前段时间写了个安卓平台下SQLite数据库操作的实例 ,一直没得时间总结 ,今天把它弄出来了. 在Android 运行时环境包含了完整的 SQLite. 首先介绍一下SQLite这个数据库: SQLi ...
- C++11 类内初始化
C++11新标准规定,可以为数据成员提供一个类内初始值.创建对象时,类内初始值将用于初始化数据成员.没有初始值的成员将默认初始化. 对类内初始值的限制与之前介绍的类似:或者放在花括号里,或者放在等号右 ...
- Samba服务器配置参考链接
一步一学Linux与Windows共享文件Samba(很适合初学者,极力推荐): http://os.51cto.com/art/200709/56395.htm 由最简单的一个例子说起,匿名用户可读 ...
- Undefined property: Illuminate\Database\Eloquent\Builder
是因为在 $activity=Activity::where('center_id','=',$center->id)->where('Date','=',date("Y-m-d ...
- yar
<?php class Operator { /** * 两数相加 */ public function add($a, $b) { return $this->_add($a, $b); ...
- Linux shell 脚本攻略之根据扩展名切分文件名
摘自:<Linux shell 脚本攻略>Page61-62
- CentOS-6.5安装配置Tomcat7
一.下载tomcat cd /usr/local/src wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.50/bin/apache ...
- [转]oracle EBS 基础100问
from:http://www.cnblogs.com/xiaoL/p/3593691.html http://f.dataguru.cn/thread-51057-1-1.html 1001 OR ...