R、 ggplot2:将填充值更改为离散颜色而不是渐变
我有以下数据: 文本指的是叙事,mi指的是某一特征的计数,shi指的是另一特征的计数。我把它们放在一个数据框中,如下所示。我不确定如何用值的向量手动重新创建这个数据帧,所以我提前表示歉意,因为它不像其他方法那个样可重复R、 ggplot2:将填充值更改为离散颜色而不是渐变,r,ggplot2,bar-chart,categorical-data,R,Ggplot2,Bar Chart,Categorical Data,我有以下数据: 文本指的是叙事,mi指的是某一特征的计数,shi指的是另一特征的计数。我把它们放在一个数据框中,如下所示。我不确定如何用值的向量手动重新创建这个数据帧,所以我提前表示歉意,因为它不像其他方法那个样可重复 test <- as.data.frame(read_excel("plotTEST.xlsx")) 通过大量调整和多次迭代,这是我得到的最干净的结果: 渐变似乎是默认的,尽管我试着按照链接示例中的代码进行操作,但它们没有给出颜色选择的具体细节 这是一个梯度而不是谨慎的颜
test <- as.data.frame(read_excel("plotTEST.xlsx"))
通过大量调整和多次迭代,这是我得到的最干净的结果:
渐变似乎是默认的,尽管我试着按照链接示例中的代码进行操作,但它们没有给出颜色选择的具体细节
这是一个梯度而不是谨慎的颜色,我如何才能得到谨慎的mi计数和shi计数的颜色
我尝试了上述解决方案,但这只会导致另一个具有不同颜色的单独键,并且每个条都有不同颜色的轮廓。您可以这样做:
# Your data
text <- c("Swollen River", "Anaconda caught", "Chikwan speaks", "Lake explodes","Swollen River", "Anaconda caught", "Chikwan speaks", "Lake explodes")
values <- c(5,18,45,98, 0,9,33,23)
type <- c("mi","mi","mi","mi","shi","shi","shi","shi")
df <- data.frame("text"=text, "values"=values, "type"=type)
# dataframe in long format:
# text values type
# 1 Swollen River 5 mi
# 2 Anaconda caught 18 mi
# 3 Chikwan speaks 45 mi
# 4 Lake explodes 98 mi
# 5 Swollen River 0 shi
# 6 Anaconda caught 9 shi
# 7 Chikwan speaks 33 shi
# 8 Lake explodes 23 shi
# Plot
ggplot(data=df, aes(x=text, y=values, fill=type)) + geom_bar(stat="identity")
换句话说,您确实需要数据,最好是长格式的,如前所述 可能的重复:要获得堆叠条形图,您需要长格式的数据,而不是可能的重复
# Your data
text <- c("Swollen River", "Anaconda caught", "Chikwan speaks", "Lake explodes","Swollen River", "Anaconda caught", "Chikwan speaks", "Lake explodes")
values <- c(5,18,45,98, 0,9,33,23)
type <- c("mi","mi","mi","mi","shi","shi","shi","shi")
df <- data.frame("text"=text, "values"=values, "type"=type)
# dataframe in long format:
# text values type
# 1 Swollen River 5 mi
# 2 Anaconda caught 18 mi
# 3 Chikwan speaks 45 mi
# 4 Lake explodes 98 mi
# 5 Swollen River 0 shi
# 6 Anaconda caught 9 shi
# 7 Chikwan speaks 33 shi
# 8 Lake explodes 23 shi
# Plot
ggplot(data=df, aes(x=text, y=values, fill=type)) + geom_bar(stat="identity")