如何使用ggplot2清理数据并创建图形?

依地芬菊

因此,我想使用来自Wikipedia的数据创建一个图形,我从发现的表中创建了一个数据框。它包含两列-啤酒样式和卤水范围(IBU),例如“ 20-50”。两者都是字符,因此我无法从中得出有意义的图表。我设法将IBU列更改为两个分别为数字(最小值和最大值)的列,但它在我的第一个数据帧内创建了第二个数据帧,试图找到类似的情况,但我不能,我现在被卡住了并且不不知道下一步该怎么做:(抱歉,粘贴了这么多代码,我只想让某人读取数据并查看其结构。

library(xml2)
library(rvest)
library(ggplot2)
library(tidyr)

file_html <- read_html(
  "https://pl.wikipedia.org/wiki/International_Bittering_Units",
   encoding = "UTF-8")
table_html <- html_node(file_html, "#mw-content-text > div > table")
table_IBU <- html_table(table_html, fill = TRUE)


table_IBU$IBU2 <- str_replace(table_IBU$`Stopień IBU`, "\\+", "")
table_IBU$IBU3 <- tidyr::separate(table_IBU, IBU2, into = c("min", "max"), sep = " – ")
table_IBU <- subset(table_IBU, select = -c(IBU2,
                                          `Stopień IBU`,
                                          `Gatunek piwa`))

table_IBU$IBU3$min2 <- as.numeric(table_IBU$IBU3$min)
table_IBU$IBU3$max2 <- as.numeric(table_IBU$IBU3$max)

#graph that I can come up with on my own

IBUgraph <- ggplot(table_IBU$IBU3, aes(reorder(`Gatunek piwa`, + max2), 
                                 max2)) + 
  geom_point(width = 0.5, color = "darkolivegreen",
           fill = "darkseagreen4") + 
  theme(text=element_text(size = 9)) 
IBUgraph = IBUgraph +
  labs(y = "Międzynarodowe Jednostki Goryczy (IBU)",
       x = "Gatunek",
       title = "Skala IBU - International Bitterness Units, 
       czyli międzynarodowe jednostki goryczy")
IBUgraph <- IBUgraph + theme(axis.text.x=element_text(angle=45, hjust=1.1))

IBUgraph

最后,我想使用ggplot()在x轴上展示啤酒的样式创建一个图形,每种样式分别显示两个点,以显示最小的有效值,最大值。

fmarm

例如,您可以执行此操作,这称为哑铃图

ggplot(table_IBU$IBU3,aes(x=`Gatunek piwa`)) + 
      geom_point(aes(y=min2)) + # add point for min
      geom_point(aes(y=max2)) + # add point for max
      geom_segment(aes(xend=`Gatunek piwa`,y=min2,yend=max2)) + # create segment between min and max
      theme(axis.text.x = element_text(angle = 90, hjust = 1)) # rotate x axis

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用ggplot2的图形

如何使用ggplot2填充图形的区域

如何使用ggplot2为图形编号

使用所选数据创建ggplot2网格

在ggplot2中使用多个箱形图创建图形

ggplot2:为每个ID创建不同的图形面板

使用带有 ggplot2 的 for 循环在数据框中绘制多个图形

在ggplot2中使用pmap自动绘制不同数据集的图形

使用ggplot2在嵌套数据组中的图形上连接点

如何使用图例在ggplot2中创建分段图?

如何使用ggplot2创建一维图表?

如何使用ggplot2创建分组累积频率图

ggplot2和Shiny:如何使用图形大小缩放图例的大小?

如何使用ggplot2在R中制作具有透明背景的图形?

如何使用ggplot2图例表示不同的几何图形

如何在 R 中使用 ggplot2 创建带有数据标签的非堆叠条形图?

ggplot2:如何以特定角度旋转图形?

如何使图形的轴跳过固定值(ggplot2)

如何更正无法生成ggplot2图形的错误?

如何返回预期的图形(ggplot2,r 中的椭圆)?

在ggplot2中使用for循环保存图形

使用多个方面播放 ggplot2 的图形

使用 ggplot2 创建子图

使用循环创建图 [ggplot2]:错误“数据”必须是数据框

如何清理使用Phoenix / Ecto创建的PostgreSQL数据库

使用 ggplot2 中的 geom_tile 对数据框进行排序以创建“被子”图表

ggplot2:使用带有零件数据的选定构面创建图

R 使用 ggplot2 从非数值数据创建堆积条形图

循环遍历数据框的列以使用ggplot2创建图