呼市网站制作招聘,网站建设公司豆瓣,西安专业的网站优化,长沙自助建站平台目录
玫瑰图
数据格式
绘图基础
绘图升级#xff08;文本调整#xff09; 玫瑰图
下载数据data/2020/2020-11-24 mirrors_rfordatascience/tidytuesday - 码云 - 开源中国 (gitee.com)
R语言绘图—南丁格尔玫瑰图 - 知乎 (zhihu.com)
数据格式
rm(list ls())
libr…目录
玫瑰图
数据格式
绘图基础
绘图升级文本调整 玫瑰图
下载数据data/2020/2020-11-24 · mirrors_rfordatascience/tidytuesday - 码云 - 开源中国 (gitee.com)
R语言绘图—南丁格尔玫瑰图 - 知乎 (zhihu.com)
数据格式
rm(list ls())
library(ggplot2)
library(dplyr)
library(stringr)
hike_data - readRDS(hike_data.rds)
hike_data$region - as.factor(word(hike_data$location, 1, sep -- ))
hike_data$length_num - as.numeric(sapply(strsplit(hike_data$length, ), [[, 1))plot_df - hike_data %%group_by(region) %% ##按照region列进行分组summarise(sum_length sum(length_num), mean_gain mean(as.numeric(gain)),n n()) %% ##每个分组计算总长度(sum_length)、平均增益(mean_gain)和数量(n)mutate(mean_gain round(mean_gain, digits 0))#对mean_gain列进行舍入操作保留0位小数plot_df
# A tibble: 11 × 4region sum_length mean_gain nfct dbl dbl int1 Central Cascades 2131. 2260 2262 Central Washington 453. 814 803 Eastern Washington 1334. 1591 1434 Issaquah Alps 383. 973 775 Mount Rainier Area 1602. 1874 1966 North Cascades 3347. 2500 3017 Olympic Peninsula 1700. 1572 2098 Puget Sound and Islands 810. 452 1919 Snoqualmie Region 1915. 2206 219
10 South Cascades 1630. 1649 193
11 Southwest Washington 825. 1185 123 绘图基础
p1 - ggplot(data plot_df,aes(x reorder(str_wrap(region, 5), sum_length),##x变量regionstr_wrap()将region换行,按照sum_length排序ysum_length,fill region)) ##fill region 根据这个进行颜色填充geom_bar(width 0.8,stat identity) #条形图coord_polar(thetax,start0) #坐标系 theta将角度映射到的变量x或yylim(-500,3500) ##根据最大值设置合适的圆环直径scale_fill_viridis(optionA,discreteT)theme_minimal()xlab( )ylab( ) ##主题labs(title 玫瑰图, subtitle paste( Florence NightingaleA,Florence NightingaleB, sep \n), caption 2024)theme(legend.positionnone)##不展示图例
p1
dev.off()绘图升级文本调整
计算角度
rm(list ls())
library(ggplot2)
library(dplyr)
library(stringr)
library(viridis)
hike_data - readRDS(hike_data.rds)
hike_data$region - as.factor(word(hike_data$location, 1, sep -- ))
hike_data$length_num - as.numeric(sapply(strsplit(hike_data$length, ), [[, 1))plot_df - hike_data %%group_by(region) %% ##按照region列进行分组summarise(sum_length sum(length_num), mean_gain mean(as.numeric(gain)),n n()) %% ##每个分组计算总长度(sum_length)、平均增益(mean_gain)和数量(n)mutate(mean_gain round(mean_gain, digits 0))#对mean_gain列进行舍入操作保留0位小数##需要对文本角度进行计算## 需要先进行排序计算
plot_df1 - as.data.frame(plot_df)
##值从大到小降序排列
plot_df2 - plot_df1[order(plot_df1$sum_length,decreasingT),c(1:2)]
label_data-plot_df2
library(data.table)
setDT(label_data)#构造文本
label_data[,new_label:paste0(region,sum_length,例)] ##添加文本内容
label_data[,id:1:nrow(label_data)] ##添加排序号已经降序排列
number_of_bar - nrow(label_data) ##行数量用于计算角度
label_data[,angle:90 - 360 * (label_data$id-0.5) /number_of_bar] #角度计算
label_data[,:(hjustifelse(angle90,1,0),angle1ifelse(angle90,angle180,angle))]
head(label_data)[1:3]region sum_length new_label id angle hjust angle1
1: North Cascades 3346.53 North Cascades3346.53例 1 73.636364 1 253.6364
2: Central Cascades 2130.85 Central Cascades2130.85例 2 40.909091 1 220.9091
3: Snoqualmie Region 1915.32 Snoqualmie Region1915.32例 3 8.181818 1 188.1818 p1 - ggplot(data plot_df,aes(##一定注意reorder(str_wrap(region, 5), sum_length,decreasingT)顺序与计算角度顺序需要一致x reorder(str_wrap(region, 5), sum_length,decreasingT),##x变量regionstr_wrap()将region换行,按照sum_length排序ysum_length,fill region)) ##fill region 根据这个进行颜色填充geom_bar(width 0.8,stat identity) #条形图coord_polar(thetax,start0) #坐标系 theta将角度映射到的变量x或yylim(-500,3500) ##根据最大值设置合适的圆环直径scale_fill_viridis(optionA,discreteT)theme_minimal()xlab( )ylab( ) ##主题labs(title 玫瑰图, subtitle paste( Florence NightingaleA,Florence NightingaleB, sep \n), caption 2024)theme(legend.position none, #不展示图例text element_text(color gray12, family Bell MT), #参数https://www.jianshu.com/p/8e33dc11ed8caxis.text element_blank(), axis.title element_blank(), panel.grid element_blank()) geom_text(datalabel_data, aes(xid, y sum_length, labelnew_label, hjusthjust), colorblack, fontfacebold, alpha0.6, size3.5, anglelabel_data$angle1,inherit.aesFALSE)
p1
dev.off() 参考
1南丁格尔玫瑰图 With ggplot2【R语言】_r语言玫瑰图-CSDN博客
2R语言绘图—南丁格尔玫瑰图 - 知乎 (zhihu.com)
雷达图学习R实战| 雷达图(Radar Chart)-CSDN博客