可视化基础篇 | ggplot2 基础柱形图绘制

本期推文我们开始介绍*基础柱形图(条形图)*的绘制推文,其目的就是让大家希望大家可以一步步打好基础,为以后绘制更加复杂、更加精美的可视化设计作品做准备。本期主要涉及的知识点如下:

  • 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版本的哦!

### 回答1: ggplot2是R语言中一个非常流行的绘图包,可用于创建各种类型的图表,包括柱状图。在ggplot2中,我们可以使用geom_bar()函数创建柱状图,并使用geom_text()函数添加数字标签。 首先,我们需要准备绘图数据,并使用ggplot()函数指定数据集和x、y变量。接下来,我们可以使用geom_bar()函数创建柱状图,并使用aes()函数指定颜色、填充和其他绘图属性。 添加数字标签是通过使用geom_text()函数实现的。我们需要指定标签的位置和标签的值,并使用hjust和vjust参数调整标签的水平和垂直对齐。 例如,下面是一个使用ggplot2绘制柱状图并添加数字标签的示例代码: ``` library(ggplot2) # 准备数据 data <- data.frame(category = c("A", "B", "C", "D"), value = c(20, 30, 15, 25)) # 绘制柱状图 ggplot(data, aes(x = category, y = value, fill = category)) + geom_bar(stat = "identity") + scale_fill_manual(values = c("#E69F00", "#56B4E9", "#009E73", "#F0E442")) + # 添加数字标签 geom_text(aes(label = value), vjust = -0.5, size = 4) ``` 该代码生成一个柱状图,每个柱子上方带有相应的数字标签。我们可以使用scale_fill_manual()函数设置颜色,也可以使用其他函数调整其他绘图属性以满足我们的需求。 ### 回答2: ggplot2是一个用于数据可视化的R语言程序库,它提供了丰富的图表类型以及灵活的图表定制选项。在ggplot2中创建柱状图非常简单,可以借助geom_bar()函数快速绘制。但如何在柱状图上加上数字呢?本回答将为你详细介绍。 在ggplot2绘制柱状图一般需要注意以下几个步骤: 1. 准备数据集:柱状图需要一个数据集,包括x轴上的分类变量和y轴的数值变量。在R语言中可以使用data.frame()函数创建一个数据框。 2. 使用ggplot()函数创建一个绘图对象。设置x轴和y轴变量,还可以设置图表主题和标签。 3. 使用geom_bar()函数添加柱状图层。可以进一步设置颜色、填充和位置等属性。 4. 添加文字标签:在柱状图上添加数字标签可以通过geom_text()函数实现。需要注意的是,geom_text()中需要指定标签文本、标签位置以及文本大小等属性。可以使用position_stack()或者position_dodge()函数调整标签在柱状图上的位置。 下面是一个简单的R语言示例代码,实现了一个带有数字标签的柱状图: ```R # 加载ggplot2库 library(ggplot2) # 创建数据框 df <- data.frame(x = c("A", "B", "C", "D"), y = c(10, 20, 30, 40)) # 创建绘图对象 p <- ggplot(df, aes(x = x, y = y)) + theme_minimal() + labs(title = "柱状图示例", x = "类别", y = "数值") # 添加柱状图层 p + geom_bar(fill = "steelblue", stat = "identity") + # 添加数字标签 geom_text(aes(label = y), position = position_stack(vjust = 0.5), size = 5) ``` 在这个示例中,我们首先创建了一个包含x和y两列数据的数据框,然后通过ggplot()函数创建了一个绘图对象。接着使用geom_bar()函数添加柱状图层,并指定了柱状图的颜色和填充属性。最后使用geom_text()函数添加数字标签,使用position_stack()指定位置,使用size参数调整标签的字体大小。 值得注意的是,在柱状图上添加数字标签时需要考虑标签的可读性和美观性。标签应该尽量避免重叠,可以使用position_dodge()函数对标签进行微调,使其更好地显现。此外,标签的字体颜色、大小和样式也应该与图表整体风格相协调。 ### 回答3: ggplot2 是一种用于数据可视化的 R 语言包,它可以创建各种类型的图表,包括柱状图。在 ggplot2 中,我们可以使用 geom_bar() 函数生成柱状图。为了在柱状图中添加数字,我们可以使用 geom_text() 函数。 下面是一个例子,展示如何在 ggplot2 中创建带数字的垂直柱状图: ``` r # 加载 ggplot2 包 library(ggplot2) # 创建示例数据 data <- data.frame( group = c("A", "B", "C", "D"), value = c(10, 20, 15, 25) ) # 绘制柱状图 ggplot(data, aes(x = group, y = value)) + geom_bar(stat = "identity", fill = "steelblue") + # 添加数字标签 geom_text(aes(label = value), vjust = -0.5, size = 4) ``` 上述代码中,我们首先创建了一个包含 4 个组的数据框,并为每个组指定一个值。然后,我们使用 ggplot2 的语法定义了 x 与 y 轴的变量,并使用 geom_bar() 函数创建垂直柱状图。最后,我们通过在 geom_text() 中设置 aes(label = value),将数字标签添加到柱状图上。 在代码中我们还设置了参数 vjust = -0.5 来让数字标签位于柱子的顶部,避免图表的拥挤,同时我们还通过 size = 4 来控制了数字标签的字体大小。 除了垂直柱状图,我们还可以使用 geom_col() 函数创建水平柱状图,并使用 geom_text() 函数为每个条形添加数字标签。代码与上例略有不同,核心代码如下: ``` r ggplot(data, aes(x = value, y = group)) + geom_col(fill = "steelblue") + geom_text(aes(label = value), hjust = 1.1, size = 4) ``` 通过这些例子,我们可以看到在 ggplot2 中如何创建柱状图,并使用 geom_text() 函数添加数字标签。这些技巧可以使图表更加清晰和易于阅读,并提高数据可视化的效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值
>