温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

ggplot2怎么实现发散性正负图

发布时间:2022-03-25 15:39:55 来源:亿速云 阅读:154 作者:iii 栏目:大数据

本篇内容介绍了“ggplot2怎么实现发散性正负图”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

一 载入数据并处理

library(ggplot2)# 使用mtcars数据集data("mtcars")  # 保留car name ,新建一列mtcars$car_name <- rownames(mtcars) # 对mpg进行标准化处理 mtcars$mpg_z <- round((mtcars$mpg - mean(mtcars$mpg))/sd(mtcars$mpg), 2)  # 按照0未阈值 ,分上 下mtcars$mpg_type <- ifelse(mtcars$mpg_z < 0, "below", "above")  mtcars <- mtcars[order(mtcars$mpg_z), ]  # 为展示美观,数据排序# 改为因子,能够保持原顺序mtcars$car_name <- factor(mtcars$car_name, levels = mtcars$car_name)

注:改为因子使图形按照原顺序输出,很常用

二  Diverging bars

    Diverging bars是一种可以同时处理负值和正值的条形图。注意为了使柱状图创建柱形图而不是直方图,需要确保:

(1)设置stat=identity

(2)在aes()中同时提供x和y,其中x是字符或因子,y是数值。

 Diverging Barcharts

ggplot(mtcars, aes(x=car_name, y=mpg_z, label=mpg_z)) +   geom_bar(stat='identity', aes(fill=mpg_type), width=.5)  +  scale_fill_manual(name="Mileage",                     labels = c("Above Average", "Below Average"),                     values = c("above"="#00ba38", "below"="#f8766d")) +   labs(subtitle="Normalised mileage from 'mtcars'",        title= "Diverging Bars") +   coord_flip() + theme_bw()

ggplot2怎么实现发散性正负图

三 Diverging Lollipop Chart

    Lollipop Chart与上述类似,而是使用 geom_point 和 geom_segment 来获得想展示的图。

ggplot(mtcars, aes(x=car_name, y=mpg_z, label=mpg_z)) +   geom_point(stat='identity', color="orange",size=4)  +  geom_segment(aes(y = 0,                    x =car_name,                    yend = mpg_z,                    xend =car_name),                color = "grey")  +  labs(title="Diverging Lollipop Chart") +   ylim(-2.5, 2.5) +  coord_flip() + theme_bw()

ggplot2怎么实现发散性正负图

四 Diverging Dot Plot

    同样可以用点图传达相似的信息,圈圈里面加上具体的数值。

ggplot(mtcars, aes(x=car_name, y=mpg_z, label=mpg_z)) +   geom_point(stat='identity', aes(col=mpg_type), size=6)  +  scale_color_manual(name="Mileage",                     labels = c("Above Average", "Below Average"),                     values = c("above"="#00ba38", "below"="#f8766d")) +   geom_text(color="white", size=2) +  labs(title="Diverging Dot Plot",       subtitle="Normalized mileage from 'mtcars': Dotplot") +   ylim(-2.5, 2.5) +  coord_flip() + theme_bw()

ggplot2怎么实现发散性正负图

“ggplot2怎么实现发散性正负图”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI