R中用ggplot2画百分比柱状图

1.导入数据

library(tidyverse)
dfdemo <- read_csv("/Users/cpf/Documents/paper/R_programming/Rprocess/mydata/dfdemo.csv")
head(dfdemo)
## # A tibble: 6 x 8
##        CASENUM WEATHHER  VENO   AGE  AGE1   SEX REST_USE INJ_SEV
##          <dbl>    <dbl> <dbl> <dbl> <dbl> <dbl>    <dbl>   <dbl>
## 1 201700316865        0     1    49     2     1        1       0
## 2 201700316865        0     2    16     0     1        1       0
## 3 201600777740        0     1    18     0     1        1       1
## 4 201600777740        0     2    38     1     0        1       1
## 5 201801320571        2     1    71     3     1        1       0
## 6 201801320571        2     2    64     3     1        1       2
# 根据天气和事故严重程度做分组计数
group = dfdemo %>% 
  count(WEATHHER, INJ_SEV)
group
## # A tibble: 9 x 3
##   WEATHHER INJ_SEV     n
##      <dbl>   <dbl> <int>
## 1        0       0    59
## 2        0       1    13
## 3        0       2     5
## 4        0       3     3
## 5        1       0     7
## 6        1       1     1
## 7        2       0    10
## 8        2       1     1
## 9        2       2     1

2. 用ggplot2画百分比柱状图

## 添加字体
library(showtext)
## 为了使ggplot中有中文字体,可根据自己电脑里字体的位置自行添加。
font_add("kt", "/Users/cpf/Library/Fonts/楷体_GB2312.ttf") 
showtext_auto()
# stacked + percent
group %>% 
  drop_na() %>%  #去掉所有空值,避免出错
  ggplot(aes(fill=INJ_SEV, y= n, x = WEATHHER)) + 
  geom_bar(position="fill", stat = "identity") +
  scale_y_continuous(labels = scales::percent) + #纵坐标变为百分比
  labs(y = "受伤严重程度") +
  theme_gray()

在这里插入图片描述

  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要在 React 中使用 G2Plot,你需要先安装 `@antv/g2plot` 和 `react` 两个依赖包。然后你可以在 React 的组件中引入 `@antv/g2plot` 并使用它提供的组件来渲染图表。以下是一个使用 G2Plot 渲染折柱图的示例代码: ```javascript import React, { useRef, useEffect } from 'react'; import { Chart } from '@antv/g2'; import { Column, Line } from '@antv/g2plot'; const MyChart = () => { const chartRef = useRef(null); useEffect(() => { const data = [ { date: '2022-01-01', value: 30, visits: 20 }, { date: '2022-01-02', value: 40, visits: 40 }, { date: '2022-01-03', value: 50, visits: 60 }, { date: '2022-01-04', value: 60, visits: 80 }, { date: '2022-01-05', value: 70, visits: 100 }, { date: '2022-01-06', value: 80, visits: 120 }, { date: '2022-01-07', value: 90, visits: 140 }, ]; const columnPlot = new Column(chartRef.current, { data, xField: 'date', yField: 'value', yAxis: { label: { formatter: (v) => `${v}k`, }, }, data: data.map(item => ({ date: item.date, value: item.value })), tooltip: { shared: true, showMarkers: false, }, slider: { start: 0.1, end: 0.5, } }); const linePlot = new Line(chartRef.current, { data, xField: 'date', yField: 'visits', seriesField: '', yAxis: { label: { formatter: (v) => `${v}k`, }, }, data: data.map(item => ({ date: item.date, visits: item.visits })), tooltip: { shared: true, showMarkers: false, }, }); columnPlot.render(); linePlot.render(); return () => { columnPlot.destroy(); linePlot.destroy(); }; }, []); return <div ref={chartRef} />; }; export default MyChart; ``` 在这个示例代码中,我们使用了 `useRef` 和 `useEffect` 两个 React Hook 来创建和渲染 G2Plot 的图表。我们首先定义了一个 `data` 数组来存储折线图和柱状图的数据,然后分别创建了一个 `Column` 和一个 `Line` 实例来绘制柱状图和折线图。我们还使用了 `tooltip`、`slider` 等选项来增强图表的交互性和可视化效果。最后,我们将图表渲染到一个 `div` 元素中,并在组件销毁时销毁图表实例。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

RookieTrevor

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值