R-ggplot2 基础图表绘制-柱形图

公众号后台回复“图书“,了解更多号主新书内容

 作者:宁海涛

 来源:DataCharm

  • geom_histogram()绘制直方统计图

  • geom_bar()绘制柱形图

  • grid包添加图片美化

geom_histogram()绘制直方统计图

直方统计图用于统计数据的分布范围,横轴为绑定变量区间分隔的取值范围,纵轴则表示变量在不同变量区间上的频数。首先我们对数据进行预览,如下(部分):这里我们不再比较ggplot2的默认主题的好坏了,直接给出美化后的代码(当然借助了我非常喜欢的hrbrthemes主题包):

flipper_hist <- ggplot(data = data,aes(x = flipper_length_mm))+
  geom_histogram(aes(fill=species),binwidth = 4,position = "identity")+
  scale_fill_manual(values = c('#FF8C03',"#A034F1","#0F8B8B"))+
  guides(fill = guide_legend(nrow = 1,title = ""))+
  labs(
       title = "Base Charts in R Exercise 02: <span style='color:#D20F26'>Bar Charts</span>",
       subtitle = "processed bar charts with geom_histogram()",
       caption = "Visualization by <span style='color:#DD6449'>DataCharm</span>") +
  theme_ipsum(base_family = "Roboto Condensed")+
  theme(
        plot.title = element_markdown(hjust = 0.5,vjust = .5,color = "black",
                             size = 20, margin = margin(t = 1, b = 12)),
        plot.subtitle = element_markdown(hjust = 0,vjust = .5,size=15),
        plot.caption = element_markdown(face = 'bold',size = 12),
        #legend.position = c(.1, .1), 
        legend.position = "top",
        legend.direction = "horizontal", 
        #legend.justification = "right",
        legend.key.width = unit(1.5, "lines"), 
        legend.key.height = unit(1, "lines"),
  )

可视化结果如下:当然,我们还可以通过更改如下代码,更换主题:

theme_ft_rc() +

可视化如下:这里注意下:好多小伙伴私信我说“使用hrbrthemes包主题时显示字体不存在等字样”,我这里设置的如下:

theme_ipsum(base_family = "Roboto Condensed")

Roboto Condensed 为我电脑里的字体,这样就可以使用了。

大家可以认真学习下theme() 中设置的属性,这可是设置精美可视化作品的关键。

geom_bar()绘制柱形图

若想使用geom_bar()绘制统计频数的直方图,可以添加scale_x_binned() 加以限制辅助。还以以上数据为例,绘图代码如下:

flipper_hist3 <- ggplot(data = data,aes(x = flipper_length_mm))+
  geom_bar(aes(fill=species),alpha=.8,colour="black")+
  scale_fill_manual(values = c('#FF8C03',"#A034F1","#0F8B8B"))+
  scale_x_binned()+
  guides(fill = guide_legend(nrow = 1,title = ""))+
  labs(
       title = "Base Charts in R Exercise 02: <span style='color:#D20F26'>Bar Charts</span>",
       subtitle = "processed bar charts with geom_bar()",
       caption = "Visualization by <span style='color:#DD6449'>DataCharm</span>") +
  theme_ft_rc() +
  theme(
        plot.title = element_markdown(hjust = 0.5,vjust = .5,color = "black",
                             size = 22, margin = margin(t = 1, b = 12)),
        plot.subtitle = element_markdown(hjust = 0,vjust = .5,size=15),
        plot.caption = element_markdown(face = 'bold',size = 12),
        #legend.position = c(.1, .1), 
        legend.position = "top",
        legend.direction = "horizontal", 
        legend.key.width = unit(1.5, "lines"), 
        legend.key.height = unit(1, "lines")
  )

可视化结果如下:当然通过更改:

theme_ipsum(base_family = "Roboto Condensed")

就可获得如下可视化效果:

grid包添加图片美化

添加与绘制图表主题、颜色等元素相关的图片,可以使你的可视化作品增色不少,在ggplot2中添加图片则十分简单。这里我们选择了与主题相符的图片,用于提升绘图结果的美观性。

添加图片的方式较为固定,大家直接记住即可:

library(png)
library(grid)
img_file <- "lter_penguins.png"
img <- png::readPNG(img_file)
i1 <- grid::rasterGrob(img, interpolate = T)

接下来使用ggplot2的annotation_custom() 方法设置具体位置即可:

flipper_hist_img <- flipper_hist +
    annotation_custom(i1, ymin = 45, ymax = 60, xmin = 220, xmax = 235)

可视化结果如下:当然还有以下效果:

总结

以上就是R-ggplot2关于基础柱形图的绘制推文教程,太具体的原理性这里也没做过多介绍,感兴趣的可以自行查阅相关资料。接下来还有Python版本的哦!

◆ ◆ ◆  ◆ ◆
麟哥新书已经在京东上架了,我写了本书:《拿下Offer-数据分析师求职面试指南》,目前京东正在举行100-40活动,大家可以用相当于原价5折的预购价格购买,还是非常划算的:

数据森麟公众号的交流群已经建立,许多小伙伴已经加入其中,感谢大家的支持。大家可以在群里交流关于数据分析&数据挖掘的相关内容,还没有加入的小伙伴可以扫描下方管理员二维码,进群前一定要关注公众号奥,关注后让管理员帮忙拉进群,期待大家的加入。

管理员二维码:


猜你喜欢

● 卧槽!原来爬取B站弹幕这么简单● 厉害了!麟哥新书登顶京东销量排行榜!● 笑死人不偿命的知乎沙雕问题排行榜
● 用Python扒出B站那些“惊为天人”的阿婆主!● 你相信逛B站也能学编程吗
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ggplot是一个用于数据可视化R语言包,可以用来绘制各种类型的图表,包括柱形图。在ggplot中,我们可以使用函数geom_bar()来绘制柱形图。 要添加坐标轴和刻度线,可以使用函数scale_x_continuous()和scale_y_continuous()来设置x轴和y轴的坐标轴和刻度线。具体方法如下: 1. 在绘制柱形图之前,首先创建一个ggplot对象,并设置数据源和映射关系。例如,我们可以使用函数ggplot()来创建一个ggplot对象,并使用函数aes()来设置数据的映射关系。 2. 使用函数geom_bar()来绘制柱形图。在这个函数中,可以设置各种参数来调整柱形图的样式和外观,如填充颜色、边框颜色等。 3. 使用函数scale_x_continuous()来设置x轴的坐标轴和刻度线的样式。可以通过参数name来设置x轴的标题,通过参数limits来设置x轴的范围,通过参数breaks来设置刻度线的位置,通过参数labels来设置刻度线的标签。 4. 使用函数scale_y_continuous()来设置y轴的坐标轴和刻度线的样式。使用方法与scale_x_continuous()类似。 示例代码如下: ```R library(ggplot2) # 创建一个ggplot对象,并设置数据源和映射关系 plot <- ggplot(data = iris, aes(x = Species, y = Sepal.Length)) # 绘制柱形图 plot + geom_bar(stat = "identity") # 设置x轴的坐标轴和刻度线 plot + geom_bar(stat = "identity") + scale_x_continuous(name = "Species", limits = c("setosa", "versicolor", "virginica")) # 设置y轴的坐标轴和刻度线 plot + geom_bar(stat = "identity") + scale_y_continuous(name = "Sepal Length", limits = c(0, 10), breaks = seq(0, 10, 2)) ``` 通过使用函数scale_x_continuous()和scale_y_continuous(),我们可以轻松地为ggplot绘制柱形图添加坐标轴和刻度线。根据需要,可以调整这些函数的参数来满足特定的要求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值