精华内容
下载资源
问答
  • 比如本文将要为大家介绍的 —— Dynamic Charts and Legend,有了它,您可以地理可视化项目中,添加折线图条形图等图例了!因为地图是一种很好的可视化数据工具,但有时仅使用地图很难提供完整的分析,一种...

    b28cd4502e422a14de95b52b529c5575.gif

    Mapbox 最近推出了一系列 Impact Tool 开源小工具,主要是针对开发者们目前在做项目中遇到的共性问题,以小工具的方式帮助大家节省时间,将更多的精力投入在应用开发中。

    比如本文将要为大家介绍的 —— Dynamic Charts and Legend,有了它,您可以
    在地理可视化项目中,添加折线图、条形图等图例了!

    因为地图是一种很好的可视化数据工具,但有时仅使用地图很难提供完整的分析,一种解决方案是在地图中添加图表,条形图,趋势线,饼图和其他格式对于比较跨地理区域,随时间推移或与其他变量的数据值,以帮助用户了解数据的模式和趋势。

    图表种类繁多,构建方式也多种多样。我们在这里探讨使用折线图或条形图(使用 C3 库)的简化示例,就像这个项目中展示的那样 https://labs.mapbox.com/impact-tools/charts/

    ba6eaaf1b18ebfa2fc79cb3771616a57.png

    数据从哪里来呢?这里的折线图使用的是上传到 Mapbox Studio 的数据。可以参考付费教程 | 将 CSV 格式的外部数据显示在地图上有妙招,轻松实现地图可视化!进行详细的学习。

    界面如何配置呢?请查看下面的正式教程吧!

    Step 1. 准备工作

    这里有一些课程资料需要您提前准备好!

    - 示例源码

    - 示例地图样式

    - 示例矢量瓦片 ID(Tilesets ID): mapbox-community.hist-pres-election-county

    - Live Map Demo

    我们需要用到的工具(软件)有:

    - Mapbox 用户名(点击这里注册)

    - Mapbox Studio 用来创建地图样式

    - Mapbox GL JS 为地图增加交互组件

    - C3 Chart 为地图添加图表

    Step 2. 上传数据

    将您的数据传到 Mapbox Studio 中,可以考虑使用下面几种方式:

    • Mapbox Studio style editor
    • Mapbox Studio 的 tilesets page
    • Mapbox Tiling Service
    • Mapbox Uploads API

    Step 3. 创建底图样式

    数据上传完后,就该创建一种新样式了!转到“style”页面,单击“New Style”按钮,然后使用自定义数据创建一个新样式。

    有关如何在 Studio 编辑器中设置数据样式的更多信息,请阅读 Mapbox Studio 数据、切片、设计、导出工作流程大揭秘 #GoGlobal Design Week

    本教程使用以下公共样式:

    https://api.mapbox.com/styles/v1/mapbox-community/ckglghzgg0d6y19pe11eo9zlw.html?fresh=true&title=copy&access_token=pk.eyJ1IjoibWFwYm94LWNvbW11bml0eSIsImEiOiJjazhrbnF1NWIwMHVjM2Zwbmh2OWs2dTI1In0.O8lasZoOGKUihm-HVEZxaQ

    用浏览器打开上面的样式,点击屏幕右下角“copy”就可以把这个样式拷贝到自己的账户里面啦。

    Step 4. 了解示例代码

    从 Github 上下载示例代码,解压缩以后,您可以在 'charts' 文件夹中看到下面的文件:

    • index.js: 下一步您需要着重配置的文件。
    • index.html: 包括一些来自 Assembly.css 的 HTML 代码和 CSS 样式。

    注意:您可以在浏览器中打开此文件以查看编辑代码时的进度,或使用本地服务器选项(例如 VSCode 中的“ Go Live”功能)。模板还配置了 local live-reload development server,您可以先运行 npm install,然后在终端中运行 npm start,然后在网络浏览器中加载 HTTP://localhost:8080,然后在更改文件时页面会自动刷新。

    • Package.json, package-lock.json: 这些文件包含有关项目的信息以及开发服务器的配置设置。
    • main.css: 该文件包含一些 CSS 样式,可以根据需要用于向应用程序添加其他样式。

    Step 5. 配置示例代码

    通过使用文本编辑器对 index.js 文件进行一些简单的编辑来设置您的应用程序。

    添加 Mapbox 的访问令牌(access token)

    访问令牌是 pk 开头的一串字符。没有访问令牌,代码将无法工作。

    如何获得访问令牌?在 Mapbox.com 上免费注册一个 Mapbox 帐户,就可以在帐户主页上找到您的访问令牌。

    注意:我们建议对访问令牌使用 URL 限制功能,以避免被滥用,请将公共令牌发布到公共存储库中,您可以在这里找到有关如何安全管理访问令牌的更多信息。

    设置底图样式

    通过将 mapStyle URL 替换为地图样式的 URL,可以将您创建的样式添加到地图中,比如:

     mapStyle: 'mapbox://styles/mapbox-community/ckglghzgg0d6y19pe11eo9zlw',

    地图样式 URL 可以在您创建的 style 中找到。

    添加数据层

    想要在图表中显示的数据,我们可以把它放在数据层里。数据层会被定义并存在于下面几个渠道:

    • 在地图的 style document 中的 source-layer 属性中
    • 在 Mapbox Studio 的 tileset 页面。
    • 在 Mapbox Studio 样式编辑器中,选择“select data”。
    • 在 Mapbox Studio 样式编辑器顶部工具栏“设置”标签中的“图层概述”选项

    92545376288f1dbebe4e709a1d6eb0eb.png

    在 sourceLayer 中, 把 hist-pres-election-county 替换为你的 source layer 名称。

    sourceLayer: 'hist-pres-election-county',

    添加名称和描述

    “title”和“description”定义了页面的名称和介绍信息,你可以把这些内容替换为你的自定义内容。

     title: 'Voting Trends 2004-2016',
     description: 'This map shows estimated voter turnout as a percentage of total population in 2016, select a county to visualize historical data',

    添加数据 field

    在 fields 中添加你想要展示在图表中数据的 field 名称。程序将按顺序查询每个字段中的数据以显示在图表上,字段名称区分大小写。

     fields: [
        '2004_tot_vote_pop', 
        '2008_tot_vote_pop',
        '2012_tot_vote_pop',
        '2016_tot_vote_pop',
      ],

    添加 x 坐标轴

    在 labels 配置选项中,为您在上一步中添加的每个数据字段添加一个 x 轴标签。

    labels: ['2004', '2008', '2012', '2016'], 

    添加位置信息

    placeNameField 配置选项中,如果将“name”替换为包含地理信息(例如省、市)的数据,它们会被将添加到您的图表中,以便用户在单击地图时可以查看位置信息。

    placeNameField: 'name',

    您还可以将“ state_abbrev”替换为包含其他地理信息的属性字段的名称,就可以辅助位置名称添加到图表标签中。

    placeAdminField: 'state_abbrev',

    例如,当在地图上选择 Chittenden County 时,默认数据显示“ Chittenden County, VT”。

    选择摘要类型(可选)

    使用 summaryType,您可以控制是否在整个数据集的初始摘要图中添加值或取平均值。使用比率或其他标准化数据(例如“每平方英里的情况”或“投票率百分比”)时,请务必将其设置为“ avg” ”。

    summaryType: 'avg',

    编辑图表名称

    您可以替换 dataSeriesLabel 后的描述,来定义图表的名称。

    dataSeriesLabel: 'Voter Turnout',

    添加图例(可选)

    有两种方式可以添加一个基本的图例:自动生成或手动添加。

    自动生成:将 autoLegend 设置为 true,studioMapLayer 设置为您设计的地图在 Mapbox Studio 中的图层名称。

    注意:此功能是实验性的,仅支持基本的 fill layers (非线性插值)。

    要设置图例颜色,请使用有效的 CSS 颜色值将 legendColors 设置为要显示的颜色数组,并将 legendValues 设置为一组对应的数据值。

    Zoom to features(可选)

    zoomToFeature 选项控制单击时地图是否缩放到要素。默认选项为 true。如果要关闭此功能,请将值设置为 false。

    zoomToFeature: true

    高亮颜色

    HighlightColor 选项控制地图上单击的要素的高亮颜色。默认选项是“ #fff”。

    highlightColor: '#fff',

    选择图表类型

    示例代码支持两种图表类型:“line”或“bar”。默认选项设置为“line”。

    到这里,您就可以发布地图了!如果没有自己的服务器,可以使用 Github, Glitch 等,具体如何操作可以参考这里的教程 「 Mapbox 地图实验室 」18 个小教程等你探索


    请大家继续关注 Mapbox 知乎账号和公众号,获取更多教程与设计灵感!并欢迎您留下你的问题、建议、产品想法等,我们会在 1- 3 个工作日内回复你哦!

    http://weixin.qq.com/r/zEQNFcrEMZdOrY529xHe (二维码自动识别)

    展开全文
  • 一些有趣的可视化

    2017-03-08 16:05:00
    今天偶然看了一下大数据可视化,发现好多大神设计出的有趣的图表,饼图,条形图折线图之类的普通的图表就不说了,来点奇特的吧 1、地图,地图很多地方都用得上,而地图之上添加别的元素的方式,则是五花八门...

    今天偶然看了一下大数据可视化,发现好多大神设计出的有趣的图表,饼图,条形图,折线图之类的普通的图表就不说了,来点奇特的吧

    1、地图,地图在很多地方都用得上,而在地图之上添加别的元素的方式,则是五花八门,在这里只是举个简单的例子。

    2、雷达图,相信经常打英雄联盟的同学对这个图应该不陌生吧,掌上英雄联盟里可是一直在使用这个图,雷达图可以同时横向纵向比较,当然,纵向的话,我觉得最好就两个,再多了就看不清楚了

    3、计量图,可以用来显示进度,比进度条有趣一些, 当然,进度条做的美观一些的话,不必这个差

    4、漏斗图,图中显示的是人员转化率,类似的场景都可以使用

    5、词云,一般只能用来展示词频,我觉得如果把文字换成别的什么,比如图片,也是可以的,不过可惜应该也只能用来展示频率,用途比较单一

     

    转载于:https://www.cnblogs.com/tiandaliang/p/6519883.html

    展开全文
  • 基本图形类型载入所需包基本图形类型简述实践例子点图+标题条形图+标题+对“值”进行计数折线图+标题面积图(普通线图的基础,填充了线下方的面积)路径图(按照数据出现的顺序连接)含标签的散点图(指定点添加...

    载入所需包

    library(effects)
    library(ggplot2)
    

    基本图形类型简述

    以下几何对象是ggplot2图形的基本组成部分。每种几何对象自身即可独立构建图形,同时也可以组合起来构建更复杂的几何对象。这些几何对象基本上都关联了一种常见的图形:当某幅图形只使用了一种几何对象构建时,这幅图往往拥有一个特定的名称。

    这些几何对象均是二维的,故x和y两种图形属性都是不可或缺的。同时,它们都可以接受coloursize图形属性,另外,填充型几何对象(条形、瓦片(tile)和多边形)还可以接受fill图形属性。点使用shape图形属性,线和路径接受linetype图形属性。这些几何对象可用于展示原始数据,另行计算得到的数据摘要和元数据。

    • geom_area()用于绘制面积图(area plot),即在普通线图的基础上,依y轴方向填充了下方面积的图形。对于分组数据,各组将按照依次堆积的方式绘制。

    • geom_bar(stat="identity")绘制条形图。我们需要指定stat="identity",因为默认的统计变换将自动对“值”进行计数(所以本质上这是一个一维的几何对象)。而统计变换identity将保持数据不变。
      默认情况下,相同位置的多个条形图将以依次向上堆积的形式绘制。

    • geom_line()绘制线条图。图形属性group决定了哪些观测是连接在一起的;
      参考R语言可视化 ggplot2—设定、映射、分组、匹配图形属性和图形对象
      以了解更多细节。geom_pathgeom_line类似,但geom_path中的线条是根据它们在数据中出现的顺序进行连接的,而非从左至右进行连接。

    • geom_point()绘制散点图。

    • geom_polygon()绘制多边形,即填充后的路径。数据中的每一行代表了多边形的一个顶点。在绘图之前将多边形的顶点坐标数据和原始数据进行合并往往会更方便。后续内容以地图数据为例详细地阐明了这个概念。

    • geom_text()可在指定点处添加标签。它是这些几何对象中唯一一个需要额外图形属性的:它需要指定label参数。我们可以通过设置可选的图形属性hjustvjust来控制文本的横纵位置;此外,可以设置图形属性angle来控制文本的旋转。你可以?geom_text以了解更多。

    • geom_tile()用来绘制色深图(image plot)或水平图(level plot)。所有的瓦片(tile)构成了对平面的一个规则切分,且往往将fill图形属性映射至另一个变量。

    使用以下代码绘制以上几何对象,结果下图所示。

    实践例子

    使用不同的基本几何对象绘制相同数据的效果。

    从上到下的图形名称分别为:散点图、条形图、线图、面积图、路径图、含标签的散点图、色深图/水平图和多边形图。

    注意观察条形图、面积图和瓦片图的坐标轴范围:这三种几何对象占据了数据本身范围以外的空间,于是坐标轴被自动拉伸了。

    df <- data.frame(
      x = c(3, 1, 5),
      y = c(2, 4, 6),
      label = c("a","b","c")
    )
    
    p <- ggplot(df, aes(x, y)) + xlab(NULL) + ylab(NULL)
    

    点图+标题

    p + geom_point() + labs(title = "geom_point")
    

    在这里插入图片描述

    条形图+标题+对“值”进行计数

    p + geom_bar(stat="identity") +
        labs(title = "geom_bar(stat=\"identity\")")
    

    在这里插入图片描述

    折线图+标题

    p + geom_line() + labs(title = "geom_line")
    

    在这里插入图片描述

    面积图(在普通线图的基础上,填充了线下方的面积)

    p + geom_area() + labs(title = "geom_area")
    

    在这里插入图片描述

    路径图(按照数据出现的顺序连接)

    p + geom_path() + labs(title = "geom_path")
    

    在这里插入图片描述

    含标签的散点图(指定点添加标签)

    p + geom_text(aes(label = label)) + labs(title = "geom_text")
    

    在这里插入图片描述

    色深图或水平图

    p + geom_tile() + labs(title = "geom_tile")
    

    在这里插入图片描述

    绘制多边形,即填充后的路径

    p + geom_polygon() + labs(title = "geom_polygon")
    

    在这里插入图片描述

    展开全文
  • 4、 光标跟随:为了便于跟踪和观察修改,多附图之间实现了光标跟随,鼠标一副图上移动的时候,其他图件会有相应的贯标跟踪相应位置。 功能介绍: 序号 模块 功能简述 1 数据管理 数据类型包括测网、点数据、线数据...
  • 目前,它支持6种图表类型(折线图条形图,雷达图,饼图,柱状图和极地区域区)。而且,这是一个独立的包,不依赖第三方 JavaScript 库,小于 5KB。 前天用了一下,由于以前也稍微用过,今天总结了一下(水平有限...

    chart.js图表库案例赏析,饼图添加文字

    Chart.js 是一个令人印象深刻的 JavaScript 图表库,建立在 HTML5 Canvas 基础上。目前,它支持6种图表类型(折线图,条形图,雷达图,饼图,柱状图和极地区域区)。而且,这是一个独立的包,不依赖第三方 JavaScript 库,小于 5KB。

    前天用了一下,由于以前也稍微用过,今天总结了一下(水平有限,如果问题,请不吝赐教):

    开发中文文档:http://www.bootcss.com/p/chart.js/docs/ 

    chart.js下载:

    把所有的图标全都写了一遍,并把所有的可控属性(颜色等)均已随机数出现,大小自己控制;

    这是所有的代码,只有一个Chart.js外部文件,引来即用:

    复制代码
    <!doctype html>
    <html>
    <head>
        <title>Chart</title>
        <mate charset="utf-8"></mate>
        <script src="Chart.js"></script>
    </head>
    <body>
    
    
    <div style="width:50%;margin: 0px auto;">
    
        <!--柱状图开始-->
        <div>
            <h1>柱状图(Bar chart)</h1>
            <canvas id="canvas-bar" height="450" width="600"></canvas>
        </div>
    
        <script>
            var randomScalingFactor = function(){ return Math.round(Math.random()*100)};
            var randomScalingFactor_255 = function(){ return Math.round(Math.random()*255)};
            var radom_color = function(){
                return '#'+('00000'+(Math.random()*0x1000000<<0).toString(16)).slice(-6);
            }
            var barChartData = {
                labels : ["January","February","March","April","May","June","July"],
                datasets : [
                    {
                        fillColor : "rgba(" + randomScalingFactor_255() + "," + randomScalingFactor_255() + "," + randomScalingFactor_255() + ",0.5)",
                        strokeColor : "rgba(" + randomScalingFactor_255()+","+ randomScalingFactor_255()+"," + randomScalingFactor_255() + ",0.8)",
                        highlightFill: "rgba(" + randomScalingFactor_255() + "," + randomScalingFactor_255() + "," + randomScalingFactor_255() + ",0.75)",
                        highlightStroke: "rgba(" + randomScalingFactor_255() + "," + randomScalingFactor_255() + "," + randomScalingFactor_255() + ",1)",
                        data : [randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor()]
                    },
                    {
                        fillColor : "rgba(" + randomScalingFactor_255() + "," + randomScalingFactor_255() + "," + randomScalingFactor_255() + ",0.5)",
                        strokeColor : "rgba(" + randomScalingFactor_255() + "," + randomScalingFactor_255() + "," + randomScalingFactor_255() + ",0.8)",
                        highlightFill : "rgba(" + randomScalingFactor_255() + "," + randomScalingFactor_255() + "," + randomScalingFactor_255() + ",0.75)",
                        highlightStroke : "rgba(" + randomScalingFactor_255() + "," + randomScalingFactor_255() + "," + randomScalingFactor_255() + ",1)",
                        data : [randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor()]
                    }
                ]
    
            }
            var ctx = document.getElementById("canvas-bar").getContext("2d");
            window.myBar = new Chart(ctx).Bar(barChartData, {
                responsive : true
            });
        </script>
        <!--柱状图结束-->
    
        <!--曲线图(Line chart)开始-->
        <div>
            <h1>曲线图(Line chart)</h1>
            <canvas id="canvas-line" height="450" width="600"></canvas>
        </div>
        <script>
            var randomScalingFactor = function(){ return Math.round(Math.random()*100)};
            var lineChartData = {
                labels : ["January","February","March","April","May","June","July"],
                datasets : [
                    {
                        label: "My First dataset",
                        fillColor : "rgba(" + randomScalingFactor_255() + "," + randomScalingFactor_255() + "," + randomScalingFactor_255() + ",0.2)",
                        strokeColor : "rgba(" + randomScalingFactor_255() + "," + randomScalingFactor_255() + "," + randomScalingFactor_255() + ",1)",
                        pointColor : "rgba(" + randomScalingFactor_255() + "," + randomScalingFactor_255() + "," + randomScalingFactor_255() + ",1)",
                        pointStrokeColor : radom_color(),
                        pointHighlightFill :  radom_color(),
                        pointHighlightStroke : "rgba(" + randomScalingFactor_255() + "," + randomScalingFactor_255() + "," + randomScalingFactor_255() + ",1)",
                        data : [randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor()]
                    },
                    {
                        label: "My Second dataset",
                        fillColor : "rgba(" + randomScalingFactor_255() + "," + randomScalingFactor_255() + "," + randomScalingFactor_255() + ",0.2)",
                        strokeColor : "rgba(" + randomScalingFactor_255() + "," + randomScalingFactor_255() + "," + randomScalingFactor_255() + ",1)",
                        pointColor : "rgba(" + randomScalingFactor_255() + "," + randomScalingFactor_255() + "," + randomScalingFactor_255() + ",1)",
                        pointStrokeColor : radom_color(),
                        pointHighlightFill :  radom_color(),
                        pointHighlightStroke : "rgba(" + randomScalingFactor_255() + "," + randomScalingFactor_255() + "," + randomScalingFactor_255() + ",1)",
                        data : [randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor()]
                    },
                    {
                        label: "My First dataset",
                        fillColor : "rgba(" + randomScalingFactor_255() + "," + randomScalingFactor_255() + "," + randomScalingFactor_255() + ",0.3)",
                        strokeColor : "rgba(" + randomScalingFactor_255() + "," + randomScalingFactor_255() + "," + randomScalingFactor_255() + ",1)",
                        pointColor : "rgba(" + randomScalingFactor_255() + "," + randomScalingFactor_255() + "," + randomScalingFactor_255() + ",1)",
                        pointStrokeColor : '#'+('00000'+(Math.random()*0x1000000<<0).toString(16)).slice(-6),
                        pointHighlightFill : '#'+('00000'+(Math.random()*0x1000000<<0).toString(16)).slice(-6),
                        pointHighlightStroke : "rgba(" + randomScalingFactor_255() + "," + randomScalingFactor_255() + "," + randomScalingFactor_255() + ",1)",
                        data : [randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor()]
                    }
                ]
    
            }
                var ctx = document.getElementById("canvas-line").getContext("2d");
                window.myLine = new Chart(ctx).Line(lineChartData, {
                    responsive: true
                })
        </script>
    
        <!--曲线图(Line chart)结束-->
    
        <!--雷达图或蛛网图(Radar chart)开始-->
        <div>
            <h1>雷达图或蛛网图(Radar chart)</h1>
            <canvas id="canvas-radar" height="450" width="600"></canvas>
        </div>
        <script>
            var randomScalingFactor = function(){ return Math.round(Math.random()*100)};
            var radarData = {
                labels : ["January","February","March","April","May","June","July"],
                datasets : [
                    {
                        label: "My First dataset",
                        fillColor : "rgba(" + randomScalingFactor_255() + "," + randomScalingFactor_255() + "," + randomScalingFactor_255() + ",0.2)",
                        strokeColor : "rgba(" + randomScalingFactor_255() + "," + randomScalingFactor_255() + "," + randomScalingFactor_255() + ",1)",
                        pointColor : "rgba(" + randomScalingFactor_255() + "," + randomScalingFactor_255() + "," + randomScalingFactor_255() + ",1)",
                        pointStrokeColor : '#'+('00000'+(Math.random()*0x1000000<<0).toString(16)).slice(-6),
                        pointHighlightFill : '#'+('00000'+(Math.random()*0x1000000<<0).toString(16)).slice(-6),
                        pointHighlightStroke : "rgba(" + randomScalingFactor_255() + "," + randomScalingFactor_255() + "," + randomScalingFactor_255() + ",1)",
                        data : [randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor()]
                    },
                    {
                        label: "My Second dataset",
                        fillColor : "rgba(" + randomScalingFactor_255() + "," + randomScalingFactor_255() + "," + randomScalingFactor_255() + ",0.2)",
                        strokeColor : "rgba(" + randomScalingFactor_255() + "," + randomScalingFactor_255() + "," + randomScalingFactor_255() + ",1)",
                        pointColor : "rgba(" + randomScalingFactor_255() + "," + randomScalingFactor_255() + "," + randomScalingFactor_255() + ",1)",
                        pointStrokeColor : '#'+('00000'+(Math.random()*0x1000000<<0).toString(16)).slice(-6),
                        pointHighlightFill : '#'+('00000'+(Math.random()*0x1000000<<0).toString(16)).slice(-6),
                        pointHighlightStroke : "rgba(" + randomScalingFactor_255() + "," + randomScalingFactor_255() + "," + randomScalingFactor_255() + ",1)",
                        data : [randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor()]
                    },
    
                ]
    
            }
            var ctx = document.getElementById("canvas-radar").getContext("2d");
            window.myLine = new Chart(ctx).Radar(radarData, {
                responsive: true
            })
        </script>
        <!--雷达图或蛛网图(Radar chart)结束-->
    
        <!--极地区域图(Polar area chart)开始-->
        <div>
            <h1>极地区域图(Polar area chart)</h1>
            <canvas id="canvas-polar" height="450" width="600"></canvas>
        </div>
        <script>
            var randomScalingFactor = function(){ return Math.round(Math.random()*100)};
            var polarData = [
                {
                    value: 300,
                    color:"#F7464A",
                    highlight: "#FF5A5E",
                    label: "Red"
                },
                {
                    value: 50,
                    color: "#46BFBD",
                    highlight: "#5AD3D1",
                    label: "Green"
                },
                {
                    value: 100,
                    color: "#FDB45C",
                    highlight: "#FFC870",
                    label: "Yellow"
                },
                {
                    value: 40,
                    color: "#949FB1",
                    highlight: "#A8B3C5",
                    label: "Grey"
                },
                {
                    value: 120,
                    color: "#4D5360",
                    highlight: "#616774",
                    label: "Dark Grey"
                }
    
            ];
            var ctx = document.getElementById("canvas-polar").getContext("2d");
            window.myLine = new Chart(ctx).PolarArea(polarData, {
                responsive: true
            })
        </script>
        <!--极地区域图(Polar area chart)结束-->
    
        <!--饼图(Pie chart)开始-->
        <div>
            <h1>饼图(Pie chart)</h1>
            <canvas id="chart-pie" width="450" height="450"/>
        </div>
        <script>
    
            var pieData = [
                {
                    value: 300,
                    color: radom_color(),
                    highlight:  radom_color(),
                    label: "Red"
    
                },
                {
                    value: 200,
                    color:  radom_color(),
                    highlight:  radom_color(),
                    label: "Green"
                },
                {
                    value: 100,
                    color:  radom_color(),
                    highlight:  radom_color(),
                    label: "Yellow"
                },
                {
                    value: 400,
                    color:  radom_color(),
                    highlight:  radom_color(),
                    label: "Grey"
                },
                {
                    value: 120,
                    color:  radom_color(),
                    highlight:  radom_color(),
                    label: "Dark Grey"
                }
            ];
                var ctx = document.getElementById("chart-pie").getContext("2d");
                window.myPie = new Chart(ctx).Pie(pieData);
        </script>
    
        <!--饼图(Pie chart)结束-->
        <!--环形图(Doughnut chart)开始-->
        <div style="width: 600px;height:600px;">
            <h1>环形图(Doughnut chart)</h1>
            <canvas id="chart-Doughnut" width="300" height="300"/>
        </div>
        <script>
            var doughnutData = [
                {
                    value: 1,
                    label: "One",
                    color:radom_color()
                },
                {
                    value: 2,
                    label: "Two",
                    color:radom_color()
                },
                {
                    value: 3,
                    label: "Three",
                    color:radom_color()
                },
                {
                    value: 4,
                    label: "Four",
                    color:radom_color()
                },
                {
                    value: 5,
                    label: "Five",
                    color:radom_color()
                }
    
            ];
    
                var ctx = document.getElementById("chart-Doughnut").getContext("2d");
                window.myDoughnut = new Chart(ctx).Doughnut(doughnutData, {responsive : true});
        </script>
        <!--环形图(Doughnut chart)结束-->
    
    
    </div>
    
    </body>
    </html>
    复制代码

    项目需要在饼图上写字(最后没用),找到了一个高手改过源码之后的文件:http://download.csdn.net/detail/renfufei/7102809

    具体做法:

    饼状图,添加文字
    1. 修改的是 Chart.js,大致在 772行 编码,也可以搜索 renfufei@qq.com 
    2. 示例是 samples/pie.html,使用的是 UTF-8编码

     

    复制代码
    --
    var pieData = [
    {
    value: 30,
    color:"#F38630"
    ,text: "男生"
    },
    {
    value : 50,
    color : "#E0E4CC"
    ,text: "女生"
    },
    {
    value : 100,
    color : "#69D2E7"
    ,text: "男人"
    }
    
    ];
    --
    复制代码

    chart.js可以完成功能,但是对于项目中的特殊需求并不能很好的实现~

     

    转载于:https://www.cnblogs.com/siwy/p/4907159.html

    展开全文
  • 前言本文主要讲解,Excel中如何制作两端对齐的参考线,包括柱状图、折线图条形图等多种技巧。 目录图表介绍图表特色绘制步骤一、图表介绍数据源:绘制效果:二、图表特色基础图标上添加一条辅助线,区分出数据...
  • 前言本文主要讲解,Excel中如何制作两端对齐的参考线,包括柱状图、折线图条形图等多种技巧。目录图表介绍图表特色绘制步骤一、图表介绍数据源:数据源:绘制效果:二、图表特色基础图标上添加一条辅助线,...
  • 前言本文主要讲解,Excel中如何制作两端对齐的参考线,包括柱状图、折线图条形图等多种技巧。目录图表介绍图表特色绘制步骤一、图表介绍数据源:绘制效果图:二、图表特色基础图标上添加一条辅助线,区分出...
  • 第一步:首先需要你的XML文件中添加上一个视图(View) 这边只演示一个LineChart的添加,如果你需要别的图标,可以用同样的方法添加上View 控件名 名称 LineChart 折线图 BarChart 柱状图(条形图) ...
  • 综合使用条形图,柱状图,折线图,饼图,地图,数字翻牌器来实现一个常规的大屏数据可视化项目。 项目案例-上市公司地域分布 以百度地图为底图,结合ECharts替换地理信息数据 旭日图-基于ECharts V4.2 旭日图...
  • 按需把两条/多条线画同一幅图上添加图例6. 按需改变图表风格7. 按需保存图片贰、柱状图1. 定义2. 绘制纵向条形图3. 绘制横向条形图未完待续 api需科学上网,见:https://matplotlib.org/3.3.2/api/ 零、导
  • 实例287 渲染分组堆积条形图 447 9.9 时序图 450 实例288 基本时序图 450 实例289 设置时间显示格式 452 实例290 添加双时间轴 453 实例291 双时间轴位置 455 实例292 动态显示十字标记 456 实例293 添加Y轴标记 458...
  • 2.3.12 在折线图或面积图中添加垂直线 53 2.3.13 添加涨/跌柱线到图表中 54 2.3.14 使用误差线显示可接受的偏差 55 2.4 设置数据系列的格式 55 2.5 使用“格式”选项卡 56 2.5.1 将文本转换为艺术字 56 ...
  • 2.3.12 在折线图或面积图中添加垂直线 53 2.3.13 添加涨/跌柱线到图表中 54 2.3.14 使用误差线显示可接受的偏差 55 2.4 设置数据系列的格式 55 2.5 使用“格式”选项卡 56 2.5.1 将文本转换为艺术字 56 ...
  • 一天和一周的卡路里消耗折线图(考虑运动中燃烧的卡路里) 入门 您可以通过两种方式运行应用程序。 1)本地运行应用程序。 安装 要本地运行该应用程序,请先将源代码克隆到本地计算机。 git clone git@github...
  • excel的使用

    2012-11-25 17:06:01
    7绘制曲线:点击工具栏的“图表向导”按钮,选择“X,Y散点”(如7),然后出现的“X,Y散点”类型中选择“无数据点平滑线散点”;此时可察看即将绘制的函数图像,发现并不是我们所要的函数曲线,...
  • 实例210 GridView控件中动态添加模板列 331 实例211 带上下箭头排序并实现查询数据为空显示表头 334 实例212 GridView自动求和及合并多列多行单元格 336 实例213 GridView合并行或列单元格的5种通用方式 338 实例...
  • 实例210 GridView控件中动态添加模板列 331 实例211 带上下箭头排序并实现查询数据为空显示表头 334 实例212 GridView自动求和及合并多列多行单元格 336 实例213 GridView合并行或列单元格的5种通用方式 338 实例...
  • 实例210 GridView控件中动态添加模板列 331 实例211 带上下箭头排序并实现查询数据为空显示表头 334 实例212 GridView自动求和及合并多列多行单元格 336 实例213 GridView合并行或列单元格的5种通用方式 338 实例...
  • 中文版Excel.2007图表宝典 2/2

    热门讨论 2012-04-06 19:01:36
    8.4.8 折线图中两个系列之间的阴影/237 8.5 创建时间线/238 8.6 通过堆积和重叠方法来创建“不可能的”图表/239 8.6.1 堆积图表/239 8.6.2 重叠图表/240 8.6.3 模拟一个“断裂的”值坐标轴/243 8.7 图表表单中显示...
  • 实例056 RichTextBox控件中添加超链接文字 65 实例057 RichTextBox控件中显示RTF格式的文件 66 实例058 为RichTextBox控件添加自定义滚动条 68 实例059 RichTextBox控件中实现关键字描红 69 实例060 ...
  • │ │ 技巧290 使条形图分类轴的标签与源数据列显示顺序一致.xls │ │ 技巧291 自定义图表.xls │ │ 技巧292 图表公式SERIES的使用技巧.xls │ │ 技巧293 图表中使用对数刻度.xls │ │ 技巧294 制作瀑布图...
  • ACReport中国式报表控件2011(Ver2.42)

    热门讨论 2011-03-06 00:03:30
    3.支持多种单元格样式,可以打印图像、图表(直方图、折线图等)、Rich文本、 条形码、中式财务帐薄、支持报表中嵌入Word、Excel文档等。 4. 强大的计算和合计功能。内置表达式解析系统和函数库。 5. 可扩充性,可以...
  • │ │ ├─折线图 │ │ ├─饼图 │ │ ├─折柱图 │ │ ├─散点图 │ │ ├─漏斗图 │ │ ├─雷达图 │ │ ├─象形图 │ │ ├─地图 │ │ ├─仪盘表 │ │ ├─关系图 │ │ ├─图表背景 │ │ ├─图表...
  • 实例001 系统菜单中添加菜单项 2 实例002 带历史信息的菜单 3 实例003 菜单动态合并 4 实例004 像“开始”菜单一样漂亮的菜单 5 实例005 多彩的菜单 6 实例006 可以拉伸的菜单界面 8 1.2 工具栏设计...
  • C#程序开发范例宝典(第2版).part02

    热门讨论 2012-11-12 07:55:11
    实例056 RichTextBox控件中添加超链接文字 65 实例057 RichTextBox控件中显示RTF格式的文件 66 实例058 为RichTextBox控件添加自定义滚动条 68 实例059 RichTextBox控件中实现关键字描红 69 实例060 ...
  • C#程序开发范例宝典(第2版).part13

    热门讨论 2012-11-12 20:17:14
    实例056 RichTextBox控件中添加超链接文字 65 实例057 RichTextBox控件中显示RTF格式的文件 66 实例058 为RichTextBox控件添加自定义滚动条 68 实例059 RichTextBox控件中实现关键字描红 69 实例060 ...
  • 程序开发范例宝典>>

    2012-10-24 10:41:28
    实例056 RichTextBox控件中添加超链接文字 65 实例057 RichTextBox控件中显示RTF格式的文件 66 实例058 为RichTextBox控件添加自定义滚动条 68 实例059 RichTextBox控件中实现关键字描红 69 实例...
  • 实例056 RichTextBox控件中添加超链接文字 65 实例057 RichTextBox控件中显示RTF格式的文件 66 实例058 为RichTextBox控件添加自定义滚动条 68 实例059 RichTextBox控件中实现关键字描红 69 实例060 ...
  • 实例056 RichTextBox控件中添加超链接文字 65 实例057 RichTextBox控件中显示RTF格式的文件 66 实例058 为RichTextBox控件添加自定义滚动条 68 实例059 RichTextBox控件中实现关键字描红 69 实例060 ...

空空如也

空空如也

1 2 3
收藏数 42
精华内容 16
关键字:

在条形图上添加折线图