zoukankan      html  css  js  c++  java
  • MVC3RAZOR尝鲜之漂亮的chart图表

    目录

    1 创建一个Chart

    2 添加标题

    3 添加数据源

    3.1 反复调用AddSeries可以添加多个

    3.2 重复绑定 3.3 使用xml作为数据源

    4 数据绑定

    5 添加图注

    6 保存数据

    7 图表与缓存

    8 保存到文件

    9 其他


    1创建一个Chart

    public Chart(

    int width,宽度

    int height,高度

    string theme = null,主题由System.Web.Helpers.ChartTheme 静态类提供

    string themePath = null 主题地址 xml格式

    );

    2添加标题

    public Chart AddTitle(

    string text = null, 添加标题

    string name = null

    //设置唯一标示 System.Web.UI.DataVisualization.Charting.Title object.

    );

    3添加数据源

    public Chart AddSeries(string name = null,

    string chartType = "Column",

    //System.Web.UI.DataVisualization.Charting.SeriesChartType 下的枚举值

    string chartArea = null,

    //获取或设置用于绘制数据系列的 ChartArea 对象(如果有)的名称。

    string axisLabel = null, 获取或设置系列的轴标签文本。

    string legend = null, 获取或设置与 Legend 对象关联的系列的名称。

    int markerStep = 1, //获取或设置用于决定数据点标记的显示频率的值。

    IEnumerable xValue = null, x轴的数据源

    string xField = null, x轴的数据绑定的字段。

    IEnumerable yValues = null,     Y轴的数据源

    string yFields = null   Y轴的数据绑定的字段。

    );

    16 

    3.1反复调用AddSeries可以添加多个

    3.2重复绑定

    如果同时指定 yValues 和yFields ,会同时显示

    同时指定 xValues 和xFields ,xFields优先。

    15

    3.3使用xml作为数据源

    @using System.Data;
    @{var dataSet
    = new DataSet();
    dataSet.ReadXmlSchema(Server.MapPath(
    "/App_Data/data.xsd"));
    dataSet.ReadXml(Server.MapPath(
    "/App_Data/data.xml"));
    var dataView
    = new DataView(dataSet.Tables[0]);
    new Chart( 400, height: 300
    , theme: ChartTheme.Vanilla
    )
    .AddSeries(
    "Default", chartType: "Pie",
    xValue: dataView, xField:
    "Name",
    yValues: dataView, yFields:
    "Sales")
    .Write();
    }

      14

    4数据绑定

    public Chart DataBindTable(IEnumerable dataSource, 数据源

    string xField = null ,x轴字段

    );

    5添加图注

    .AddLegend(title:"添加图注")

      

    6保存数据

    string xmlPath = "savedchart.xml";
    chart.SaveXml(xmlPath);

    7图表与缓存

    1保存图表到缓存

    public string SaveToCache(string key = null,

    int minutesToCache = 20,缓存时间,分钟为单位

    bool slidingExpiration = true 是否平滑显示

    );

    2从缓存中读出 

    Chart.GetFromCache( string key = null );
    @{
    //保存到缓存
    var mychart = Chart.GetFromCache("mychartkey");
    if (mychart != null) {
    mychart.AddTitle(
    "从缓存中读出"+DateTime.Now);
    mychart.Write();
    }
    else {
    mychart
    = new Chart( 600, height: 400)
    .AddTitle(
    "保存进缓存"+DateTime.Now)
    .AddSeries(
    name:
    "Employee",
    xValue:
    new[] { "Peter", "Andrew", "Julie", "Mary", "Dave" },
    yValues:
    new[] { "2", "6", "4", "5", "3" })
    .Write() ;
    mychart.SaveToCache(key:
    "mychartkey", minutesToCache: 11, slidingExpiration: false);
    }
    }

    13

    8保存到文件

    @{//保存到文件
    var mychart = new Chart( 400, height: 300)
    .AddTitle(
    "保存到文件再从文件中读取")
    .AddSeries(
    name:
    "Employee",
    xValue:
    new[] { "Peter", "Andrew", "Julie", "Mary", "Dave" },
    yValues:
    new[] { "2", "6", "4", "5", "3" });
    var path
    = "~/Content/Image/mychart.jpg";
    var imgpath
    = Server.MapPath(path);
    mychart.Save(path: imgpath, format:
    "jpeg");
    }
    <img src="@Href(path)" />

    17

    9其他

    1 更多图表的样式

    成员名称

    说明

    Point

    点图类型。

    FastPoint

    快速点图类型。

    Bubble

    气泡图类型。

    Line

    折线图类型。

    Spline

    样条图类型。

    StepLine

    阶梯线图类型。

    FastLine

    快速扫描线图类型。

    Bar

    条形图类型。

    StackedBar

    堆积条形图类型。

    StackedBar100

    百分比堆积条形图类型。

    Column

    柱形图类型。

    StackedColumn

    堆积柱形图类型。

    StackedColumn100

    百分比堆积柱形图类型。

    Area

    面积图类型。

    SplineArea

    样条面积图类型。

    StackedArea

    堆积面积图类型。

    StackedArea100

    百分比堆积面积图类型。

    Pie

    饼图类型。

    Doughnut

    圆环图类型。

    Stock

    股价图类型。

    Candlestick

    K 线图类型。

    Range

    范围图类型。

    SplineRange

    样条范围图类型。

    RangeBar

    范围条形图类型。

    RangeColumn

    范围柱形图类型。

    Radar

    雷达图类型。

    Polar

    极坐标图类型。

    ErrorBar

    误差条形图类型。

    BoxPlot

    盒须图类型。

    Renko

    砖形图类型。

    ThreeLineBreak

    新三值图类型。

    Kagi

    卡吉图类型。

    PointAndFigure

    点数图类型。

    Funnel

    漏斗图类型。

    Pyramid

    棱锥图类型。

    http://msdn.microsoft.com/zh-cn/library/system.web.ui.datavisualization.charting.seriescharttype.aspx

    2参考

    Series 成员

    http://msdn.microsoft.com/zh-cn/library/system.web.ui.datavisualization.charting.series_members.aspx

    3源码下载 

    https://files.cnblogs.com/facingwaller/learn2UseRazor3.rar 

    之前的是

    https://files.cnblogs.com/facingwaller/learn2UseRazor1-2.rar

    4尚未完成的问题 

    themePath的使用。

    2 各种图表的具体使用,有些能兼容。

    3 来自同学的提醒,似乎还不能精确控制。 在到处的xml中似乎可以比较精确的控制,

    但是由于时间问题,不做深入探究。欢迎大家交流。 

  • 相关阅读:
    xyplorer设置备忘
    如何在CentOS 8上安装Python2 Python3
    为CentOS 8操作系统安装MySQL的方法,以安装MySQL 8为例
    SSH登录服务器报ECDSA host key "ip地址" for has changed and you have requested strict checking
    Linux常用命令大全
    转载:php的几种常用的数据交换格式
    转:GBK编码 VS UTF8编码
    转载:中文在UTF8和GBK编码中的范围
    转:SDL Specification and Description Language 简介
    转:Java中Split函数的用法技巧
  • 原文地址:https://www.cnblogs.com/mrgao/p/2118744.html
Copyright © 2011-2022 走看看