因此,我想使用来自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轴上展示啤酒的样式创建一个图形,每种样式分别显示两个点,以显示最小的有效值,最大值。
例如,您可以执行此操作,这称为哑铃图
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] 删除。
我来说两句