echarts双柱_R+Echarts画双坐标轴折柱混合图

本文介绍了如何使用R语言和recharts包调用Echarts库来绘制双坐标轴的折柱混合图。内容包括数据准备、ggplot2尝试绘制以及最终使用recharts成功实现的示例,强调了recharts在定制图形方面的灵活性。
摘要由CSDN通过智能技术生成

柱状图和折线图的组合图是excel里很容易实现的一个功能,日常报表里也经常使用这类型的图。最近想用Rmarkdown自动生成日报并直接发邮件,但却被这个简单的图难住了。

先造一些数据,没有实际意义。柱状图要显示绝对值,折线图要显示百分比。formattable包可以把小数显示成百分比而保留其numeric的类型。

library(formattable)

# test data 数据均为捏造

y

waterfall = c(2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6),

humidity=percent(c(0.5012, 0.25, 0.1818, 0.3333, 0.5385, 0.9091, 0.7273)))

在excel中的效果如下图,有点丑,别介意,大致就是这么个意思:

尝试1: ggplot2

R里画图第一个想到的是用ggplot2,觉的就是一个柱状图的layer加上一个折线图就好了。但是想起来容易,操作起来却挺困难。第一个是双坐标轴的问题。这个问题无解,因为据说ggplot2的作者不喜欢双坐标轴,觉得会误导读者。那折线图就不要次坐标了吧,也不是不可以。然后把小数据映射到大数据的量级,如100%对应max(降水量),避免百分比的量级太小而在图片上看不清。然后是添加图例。柱状图和折线图可以单独添加图例,但是两个会添加在同一个位置并且彼此重叠。因为legend的position是通过theme来调节的,不能分别作用于柱状图和折线图。目前我还没找到解决方法,希望高人指点。我能做到的就是下图这样了:

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以使用echarts折柱混合来实现双y轴的效果。以下是一个例子,您只需要稍微修改字段就可以适用于您的需求。 在series参数中,您可以设置每个系列的类型,如折线柱状图,并通过yAxisIndex属性指定使用哪个y坐标轴。例如: ```javascript series: [ { name: '蒸发量', type: 'bar', data: [2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3] }, { name: '降水量', type: 'bar', data: [2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3] }, { name: '平均温度', type: 'line', yAxisIndex: 1, // 使用右y坐标轴 data: [2.0, 2.2, 3.3, 4.5, 6.3, 10.2, 20.3, 23.4, 23.0, 16.5, 12.0, 6.2] } ] ``` 同时,您还需要设置yAxis参数,来定义左右两个y坐标轴的属性,如名称和单位。例如: ```javascript yAxis: [ { type: 'value', name: '数值', // 左y坐标轴名称 axisLabel: { formatter: '{value} 万元' // 设置左y坐标轴的单位为万元 } }, { type: 'value', name: '百分比', axisLabel: { formatter: '{value} %' // 设置右y坐标轴的单位为% } } ] ``` 通过以上配置,您就可以实现echarts折柱混合双y轴的效果了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [echarts折柱混合双y坐标轴](https://blog.csdn.net/M_amazing/article/details/96151401)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值