热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

svgpath绘制心形_如何使用R语言绘制水球图?

echarts4r包封装EchartsJavascript图表库,这使得我们可以使用R语言绘制各种基于echarts.js的交互式图表,今天我给大家分享
b3fbf7258153f81dd4c1ceef2809f06c.png

echarts4r 包封装 Echarts Javascript 图表库,这使得我们可以使用 R 语言绘制各种基于 echarts.js 的交互式图表,今天我给大家分享的是水球图的绘制方法。

首先加载我们需要的 R 包:

library(echarts4r)
library(tidyverse)

我从 https://www.iconfont.cn 网站上下载了两个 SVG 图片,一个是 Apple 的 logo 一个是 Android 的 logo,可以使用文本编辑器查看他们的源代码,然后从其中找到 path://...:

path1 "path://M662.384539 156.783881c38.396052-41.595723 63.993421-99.189802 57.594078-156.783881-54.394408 3.199671-121.587499 31.99671-163.183223 73.592434-35.196381 35.196381-67.193092 95.990131-57.594078 150.384538 60.79375 6.399342 124.78717-25.597368 163.183223-67.193091z m118.387828 393.559537c0-127.986841 102.389473-188.780591 105.589144-191.980262-57.594079-86.391118-147.184868-99.189802-179.181578-99.189802-76.792105-9.599013-150.384539 44.795394-188.780591 44.795394s-99.189802-44.795394-163.183223-44.795394c-83.191447 0-159.983552 51.194737-201.579275 127.986841-86.391118 153.58421-22.397697 383.960524 60.79375 508.747694 41.595723 60.79375 89.590789 131.186512 153.584209 127.986842 60.79375-3.199671 86.391118-41.595723 159.983552-41.595724S623.988486 1023.894731 691.181578 1023.894731s108.788815-63.993421 150.384538-124.78717c47.995066-70.392763 67.193092-140.785525 67.193092-143.985197 0 0-127.986841-51.194737-127.986841-204.778946z"
path2 "path://M204.8 395.2v265.6c0 35.2-28.8 64-64 64s-67.2-28.8-67.2-64V395.2c0-35.2 35.2-64 67.2-64 35.2 3.2 64 28.8 64 64zM230.4 752c0 38.4 28.8 67.2 67.2 67.2h44.8V960c0 83.2 124.8 83.2 124.8 0v-140.8h86.4V960c0 83.2 128 83.2 128 0v-140.8h44.8c38.4 0 67.2-28.8 67.2-67.2V344H230.4V752z m566.4-430.4H227.2c0-99.2 57.6-182.4 144-227.2l-44.8-80c-6.4-9.6 9.6-19.2 16-9.6l44.8 80c80-35.2 172.8-32 246.4 0l44.8-80c6.4-9.6 22.4-3.2 16 9.6l-44.8 80c89.6 44.8 147.2 131.2 147.2 227.2z m-390.4-124.8c0-12.8-9.6-22.4-22.4-22.4-12.8 0-22.4 9.6-22.4 22.4 0 12.8 9.6 22.4 22.4 22.4 12.8 0 22.4-9.6 22.4-22.4z m259.2 0c0-12.8-9.6-22.4-22.4-22.4s-22.4 9.6-22.4 22.4c0 12.8 9.6 22.4 22.4 22.4 12.8 0 22.4-9.6 22.4-22.4z m217.6 137.6c-35.2 0-64 28.8-64 64v265.6c0 35.2 28.8 64 64 64s67.2-28.8 67.2-64V398.4c0-38.4-35.2-64-67.2-64z"

下面我们创建一个数据框:

df   column = c("Apple", "Android"), value = c(65, 35),
  path = c(path1, path2)
)
df

#> # A tibble: 2 x 3
#>   column  value path                                                            
#>                                                                  
#> 1 Apple      65 path://M662.384539 156.783881c38.396052-41.595723 63.993421-99.…
#> 2 Android    35 path://M204.8 395.2v265.6c0 35.2-28.8 64-64 64s-67.2-28.8-67.2-…

然后就可以绘制水球图了:

df %>%
  e_charts(column, width = "100%") %>%
  e_x_axis(
    splitLine = list(show = FALSE),
    axisTick = list(show = FALSE),
    axisLine = list(show = FALSE),
    axisLabel = list(show = FALSE)
  ) %>%
  e_y_axis(
    max = 100,
    splitLine = list(show = FALSE),
    axisTick = list(show = FALSE),
    axisLine = list(show = FALSE),
    axisLabel = list(show = FALSE)
  ) %>%
  e_color(color = c("#69cce6", "#eee")) %>%
  e_pictorial(value,
    symbol = path, z = 10, name = "realValue",
    symbolBoundingData = 100, symbolClip = TRUE
  ) %>%
  e_pictorial(value,
    symbol = path, name = "background",
    symbolBoundingData = 100, 
  ) %>%
  e_labels(
    position = "bottom", offset = c(0, 10),
    textStyle = list(
      fontSize = 20, fontFamily = "Arial",
      fontWeight = "bold",
      color = "#69cce6"
    ),
    formatter = "{@[1]}% {@[0]}"
  ) %>%
  e_legend(show = FALSE) %>%
  e_theme("westeros")

ee141211fed6c19969f82b7089c55cfa.png

还可以让容器里面的水波动起来。另外 echarts4r 包提供了组合多个 echarts 图表控件的函数:

library(htmlwidgets)
liquid 0.6, 0.5, 0.4), 
                 android = c(0.5, 0.3, 0.1))
liquid %>%
  e_charts() %>%
  e_liquid(apple, shape = path1, 
           backgroundStyle = list(borderColor = '#156ACF',
                                  borderWidth = 1,
                                  shadowColor = 'rgba(0, 0, 0, 0.4)',
                                  shadowBlur = 20),
           outline = list(show = FALSE),
           label = list(position = c('50%', '50%'),
                        formatter = JS("function(){return '苹果';}"),
                        fontSize = 20,
                        color = '#D94854')) -> e1
liquid %>%
  e_charts() %>%
  e_liquid(android, shape = path2, 
           backgroundStyle = list(borderColor = '#156ACF',
                                  borderWidth = 1,
                                  shadowColor = 'rgba(0, 0, 0, 0.4)',
                                  shadowBlur = 20),
           outline = list(show = FALSE),
           label = list(position = c('50%', '50%'),
                        formatter = JS("function(){return '安卓';}"),
                        fontSize = 20,
                        color = '#D94854')) -> e2
e_arrange(e1, e2, rows = 1, cols = 2)

762d0bd488e1aeaa51162bf57281b1ae.png

使用 manipulateWidget 包合并效果更好:

library(manipulateWidget)
combineWidgets(e1, e2, byrow = TRUE, nrow = 1, 
               width = "100%", height = "400px")

363e018843473bbc6346d1f04ed4813d.png

是不是很炫酷!

代码和相关材料获取

在公众号后台发送 liquid 即可获取~

? 线上培训班体验邀请

欢迎加入我的线上培训班学习使用 R 和 Stata 进行数据处理和可视化:你想学习使用 R & Stata 进行数据分析与可视化么?我觉得你可以加入我的线上培训班试试!

之后的课程将不再通过哔哩哔哩直播进行,那么该如何试听我的培训班的课程呢?很简单:

  1. 关注本公众号 RStata,这样你能够第一时间获取课程预告和我提供的学习资源;
  2. 转发本文至朋友圈集齐 12 个赞;
  3. 截图发给我,我就邀请你加入会员群进行体验(两天),期间你可以参与腾讯会议观看课程直播和进行提问。

我的微信

更多内容欢迎加入我的线上培训班获取,详情可添加我的微信咨询了解:

328c28f62e615fee3d3207b4aec11308.png

非诚勿扰。

推荐阅读

  • 【Stata 编程导论】第三讲:函数、宏、标量和矩阵(二)
  • 函数、宏、标量和矩阵(一)
  • 【使用 R 语言进行地理计算】第二讲:属性数据操作
  • 为小白准备的课程~ 《Stata 绘图指引》系列课程第二讲:Stata 的图形编辑器
  • 指北针和比例尺来啦!使用 Stata 绘制中国市级地图~还带九段线小地图
  • 《R 数据科学》系列课程第二讲:使用 ggplot2 进行数据可视化
  • 上手 Stata 图表制作
  • 入手 R 语言!
  • 入手 Stata
  • Stata 网络数据爬取:JSON 篇
  • 使用 R 语言从 PDF 文档中提取表格
  • 如何根据经纬度判断该地点所处的省份或者区县?(更新版)
  • 如何在几秒钟内完成 Stata 外部命令的安装?
  • 中国的工业企业都在哪里?—— Stata、高德接口与地理编码



推荐阅读
  • 推荐系统遇上深度学习(十七)详解推荐系统中的常用评测指标
    原创:石晓文小小挖掘机2018-06-18笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值, ... [详细]
  • [echarts] 同指标对比柱状图相关的知识介绍及应用示例
    本文由编程笔记小编为大家整理,主要介绍了echarts同指标对比柱状图相关的知识,包括对比课程通过率最高的8个课程和最低的8个课程以及全校的平均通过率。文章提供了一个应用示例,展示了如何使用echarts制作同指标对比柱状图,并对代码进行了详细解释和说明。该示例可以帮助读者更好地理解和应用echarts。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • linux qt打开常用文件格式,设置Linux Qt文件默认打开方式为QtCreator
    Linux自定义文件打开方式也可参照文本抱歉,本文前段时间写的ubuntu下的Qt工程文件默认打开方式是不好用的,因为其他的文本文件也会受到影响,强迫症患者,每次打开Qt工程都是先 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 电销机器人作为一种人工智能技术载体,可以帮助企业提升电销效率并节省人工成本。然而,电销机器人市场缺乏统一的市场准入标准,产品品质良莠不齐。创业者在代理或购买电销机器人时应注意谨防用录音冒充真人语音通话以及宣传技术与实际效果不符的情况。选择电销机器人时需要考察公司资质和产品品质,尤其要关注语音识别率。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 网址:https:vue.docschina.orgv2guideforms.html表单input绑定基础用法可以通过使用v-model指令,在 ... [详细]
  • C语言常量与变量的深入理解及其影响
    本文深入讲解了C语言中常量与变量的概念及其深入实质,强调了对常量和变量的理解对于学习指针等后续内容的重要性。详细介绍了常量的分类和特点,以及变量的定义和分类。同时指出了常量和变量在程序中的作用及其对内存空间的影响,类似于const关键字的只读属性。此外,还提及了常量和变量在实际应用中可能出现的问题,如段错误和野指针。 ... [详细]
  • 如何在elementui table 内容里面放多选框?
    本文介绍了如何在elementui的table组件中放置多选框的方法,并提供了相应的代码示例和UI图效果。通过阅读本文,你将了解如何将UI图中的多选框放到表格内容中,并实现相应的功能。 ... [详细]
  • wordpress的内页悬浮选项卡功能预览及使用方法介绍
    本文介绍了wordpress的内页悬浮选项卡功能,包括功能预览和使用方法。用户可以自定义切换按钮,设置锚点信息区域,灵活多变且无需代码编辑。文章可以统一设置按钮,也可以独立设置单篇文章的按钮,滚动模式下按钮以滑动形式展示,具有条理性和锚点属性,有利于SEO。滚动效果增加了网站的互动性,让用户参与互动,同时完全兼容手机,使信息展示更清晰。 ... [详细]
  • 引号快捷键_首选项和设置——自定义快捷键
    3.3自定义快捷键(CustomizingHotkeys)ChemDraw快捷键由一个XML文件定义,我们可以根据自己的需要, ... [详细]
  • 属性字符串NSMutableAttributedString
    要实现如下效果:NSString*mailStringmymail126.com;NSString*mailStringWithQuotes[NSStringst ... [详细]
author-avatar
快乐俱乐部老巢_260
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有