NPlot开源画图类

一.net下的图表控件­­­NPlot的基本用法

NPlot的基本用法

  图表控件一直是很难找的,特别是免费又强大的。NPlot是一款非常难得的.Net平台下的图表控件,能做各
种曲线图,柱状图,饼图,散点图,股票图等,而且它免费又开源,使用起来也非常符合程序员的习惯。
唯一的缺点就是文档特别难找,难读。通过对其文档的阅读和对示例程序源代码的分析,现在将NPlot的基
  本概念整理如下:
NPlot的命名空间包括NPlot,NPlot.Bitmap,NPlot.Web,NPlot.Web.Design,NPlot.Windows等,其中最
核心的,管理各种图表的类都属于NPlot命名空间,NPlot.Bitmap针对位图的管理,NPlot.Web,NPlot.W
eb.Design和NPlot.Windows则可视为NPlot图表在Web Form和Windows Form上的容器(PlotSurface
2D)。这些容器可以拖到Form上,也可以位于其他容器之中。

二.vs2010下的图表控件­­­NPlot下载

http://files.cnblogs.com/files/hongmaju/NPlotClass.zip

三.vs2010上的配置和使用

  要在应用程序中应用NPlot控件,首先要把所下载的NPlot.dll添加到.Net工程中。并将其添加到工具箱托盘
中。添加方式为:在工具箱上单击右键,选择“选择项”,会出现“选择工具箱项”对话框,在“.Net Framew
orks组件”属性页,选择浏览,找到NPlot.dll添加到工具箱项。这时工具箱中会出现NPlot控件。在设计应
用程序界面时,可以将其拖入应用程序界面,系统会在代码中自动创建一个PlotSurface2D对象。
PlotSurface2D对象是NPlot图表的容器,所有的图表图形,坐标,标题(都继承IDrawable接口)等各种
信息都可以被加入PlotSurface2D。PlotSurface2D拥有一个非常重要的方法:Add。各种图表图形,坐
标,标题都可以通过Add加入PlotSurface2D对象,plot:为控件名称,并引入空间:using NPlot?

点状图代码:

//plot.Clear();//清空
            //Grid mygrid = new Grid(); //加入网格
            //plot.Add(mygrid);

            ////Marker m = new Marker(Marker.MarkerType.FilledCircle, 6, new Pen(Color.Blue, 2.0F));//点状图的类型,实心圆点
            //Marker m = new Marker(Marker.MarkerType.Cross1, 6, new Pen(Color.Blue, 2.0F));//点状图的类型,叉形
            //PointPlot pp = new PointPlot(m);
            //int[] a = new int[] { 0, 1 };
            //pp.OrdinateData = a;
            //StartStep b = new StartStep(-500.0, 10.0);//根据第一个数,可以得到相差10的两个数
            //pp.AbscissaData = b;
            //pp.Label = "Random";
            //plot.Add(pp);

            //plot.AddInteraction(new NPlot.Windows.PlotSurface2D.Interactions.HorizontalDrag());
            //plot.AddInteraction(new NPlot.Windows.PlotSurface2D.Interactions.VerticalDrag());
            //plot.AddInteraction(new NPlot.Windows.PlotSurface2D.Interactions.AxisDrag(true));

            //plot.XAxis1.IncreaseRange(0.1);
            //plot.YAxis1.IncreaseRange(0.1); //缩小到合适大小
            //plot.Refresh(); 

蜡烛图代码:

 //plot.Clear();//清空
            //int[] opens = { 1, 2, 1, 2, 1, 3 };//圆柱底坐标
            //double[] closes = { 2, 2, 2, 1, 2, 1 };//圆柱顶坐标
            //float[] lows = { 0, 1, 1, 1, 0, 0 };//下线坐标
            //System.Int64[] highs = { 3, 2, 3, 3, 3, 4 };//上线坐标
            //int[] times = { 0, 1, 2, 3, 4, 5 };//X轴位置
            //CandlePlot cp = new CandlePlot();
            //cp.CloseData = closes;
            //cp.OpenData = opens;
            //cp.LowData = lows;
            //cp.HighData = highs;
            //cp.AbscissaData = times;
            //plot.Add(cp);
            //plot.AddInteraction(new NPlot.Windows.PlotSurface2D.Interactions.HorizontalDrag());
            //plot.AddInteraction(new NPlot.Windows.PlotSurface2D.Interactions.VerticalDrag());
            //plot.AddInteraction(new NPlot.Windows.PlotSurface2D.Interactions.AxisDrag(true));

            //plot.XAxis1.IncreaseRange(0.1);
            //plot.YAxis1.IncreaseRange(0.1); //缩小到合适大小
            //plot.Refresh();  

阶梯状图代码:

 //StepPlot sp1 = new StepPlot();
            //sp1.OrdinateData = new int[] { 0, 1, 2 };
            //sp1.AbscissaData = new int[] { 4, 5, 6 };
            //sp1.Label = "高度";
            //sp1.Pen.Width = 2;
            //sp1.Pen.Color = Color.Blue;
            //plot.Add(sp1);

柱状图累加图代码:

 //HistogramPlot hp3 = new HistogramPlot();
            //hp3.AbscissaData = new int[] { 0, 1, 2 };
            //hp3.OrdinateData = new int[] { 4, 5, 6 };
            //hp3.BaseWidth = 0.6f;
            //hp3.RectangleBrush = RectangleBrushes.Vertical.FaintBlueFade;//纵向渐变
            //hp3.Filled = true;
            //hp3.Label = "一月";
            //HistogramPlot hp4 = new HistogramPlot();
            //hp4.AbscissaData = new int[] { 0, 1, 2 };
            //hp4.OrdinateData = new int[] { 7, 81, 9 };
            //hp4.Label = "二月";
            //hp4.RectangleBrush = RectangleBrushes.Horizontal.FaintGreenFade;//横向渐变
            //hp4.Filled = true;
            //hp4.StackedTo(hp3);
            //plot.Add(hp3);
            //plot.Add(hp4);
时间: 2024-08-23 23:25:43

NPlot开源画图类的相关文章

ASP.NET中常用的几个李天平开源公共类LTP.Common,Maticsoft.DBUtility,LtpPageControl

ASP.NET中常用的几个开源公共类: LTP.Common.dll: 通用函数类库     源码下载Maticsoft.DBUtility.dll 数据访问类库组件     源码下载LtpPageControl.dll    Web分页控件   源码下载 本博客下载地址: LTP.Common.dll: 通用函数类库     源码下载Maticsoft.DBUtility.dll 数据访问类库组件     源码下载LtpPageControl.dll    Web分页控件   源码下载 来自:

《介绍一款开源的类Excel电子表格软件》续:七牛云存储实战(C#)

?? 两个月前的发布的博客<介绍一款开源的类Excel电子表格软件>引起了热议:在博客园有近2000个View.超过20个评论. 同时有热心读者电话咨询如何能够在SpreadDesing中实现存储Excel云文件,既通过云方式读取.加载Excel文件.在本文,我们就大家关心的云存储进行实战操练---基于SpreadDesign源码基础. 系统必备: 本文选用的国内比较流行的七牛云存储. SpreadDesign.exe已经升级为最新的Spread Studio 8.35.20143.0内核 .

C++开源日志类

今天想给我的C++项目找一个开源的日志类,用于记录系统日志,结果浪费了半个下午的时间.从网上搜索相关资料,找到以下几个备选方案: 1.log4cplus 下载地址:http://sourceforge.net/projects/log4cplus/files/log4cplus-stable/1.1.0 2.log4cxx 下载地址:http://logging.apache.org/log4cxx/download.html (log4cxx 是由JAVA实现的 log4j 开源的,用C++实

360开源的类Redis存储系统:Pika

Pika 是 360 DBA 和基础架构组联合开发的类 Redis 存储系统,完全支持 Redis 协议,用户不需要修改任何代码,就可以将服务迁移至 Pika.有维护 Redis 经验的 DBA 维护 Pika 不需要学习成本. Pika 主要解决的是用户使用 Redis 的内存大小超过 50G.80G 等等这样的情况,会遇到启动恢复时间长,一主多从代价大,硬件成本贵,缓冲区容易写满等问题.Pika 就是针对这些场景的一个解决方案. Pika 目前已经开源,github 地址: https://

GDI+画图类Graphics的使用

一:基础定义 #region 定义线尾.线头为箭头.字体和笔刷 Pen p = new Pen(Color.Black, 1);//定义画笔 蓝色,宽度为1(坐标显示颜色) p.EndCap = LineCap.ArrowAnchor;//定义线尾的样式为箭头 Pen pk = new Pen(Color.Black, 1);//定义画笔 黑色,宽度为1(坐标显示颜色) Pen pbl = new Pen(Color.Red,1); pbl.EndCap = LineCap.ArrowAncho

介绍一款开源的类Excel电子表格软件

Excel一直以霸主的地位,占据了Windows桌面表格软件市场No 1,与此同时,Office套装产品几乎成为了IT行业的标配办公技能.有无类似Excel的桌面程序,绿色版,实现基本的数据编辑功能呢? 假如不安装Office,可否实现表格编辑.公式编辑.打印.导出.导出等操作呢? 可以的,本文介绍的这款开源的SpreadDesginer即可实现这样的需求.      谁适合阅读此文? 软件设计师 产品经理 Excel用户 系统必备: .NET Framework 4.0 在管理平台中嵌入Exc

android中画图类的介绍Path

Paint类相关属性: /** * Paint类介绍 * * Paint即画笔,在绘图过程中起到了极其重要的作用,画笔主要保存了颜色, * 样式等绘制信息,指定了如何绘制文本和图形,画笔对象有很多设置方法, * 大体上可以分为两类,一类与图形绘制相关,一类与文本绘制相关. * * 1.图形绘制 * setARGB(int a,int r,int g,int b); * 设置绘制的颜色,a代表透明度,r,g,b代表颜色值. * * setAlpha(int a); * 设置绘制图形的透明度. *

BadgeView新提示开源工具类

BadgeView是使用某个图标作为新功能的提醒,类似于收到短息后短信图标的右上方有信息数目或者其他的显示性提示.BadgeView很好的实现了这个功能,而且进行了拓展,可自定义位置和提示图标. 工具类源码如下: package cn.car273.widget; /* * BadgeView.java * BadgeView * * Copyright (c) 2012 Stefan Jauker. * https://github.com/kodex83/BadgeView * * Lice

画图类

1 package cativity.cyq.layoutanimation; 2 3 import android.support.v7.app.ActionBarActivity; 4 import android.support.v4.app.Fragment; 5 import android.os.Bundle; 6 import android.view.LayoutInflater; 7 import android.view.Menu; 8 import android.view