【问题标题】:R, ggplot2: change fill value to discreet color instead of gradientR,ggplot2:将填充值更改为谨慎的颜色而不是渐变
【发布时间】:2019-04-06 21:30:49
【问题描述】:

我有以下数据:

文本指的是叙述,mi 是特定特征的计数,shi 是另一个特征的计数。我将它们放在数据框中,如下所示。我不确定如何使用值的向量手动重新创建这个数据框,所以我提前道歉,这不像其他方式那样具有重现性。

test <- as.data.frame(read_excel("plotTEST.xlsx"))

我想要一个图,其中 x 轴是每个文本,y 显示两个特征的计数。我想近似这样的东西,如herehere所示。

使用这些示例,我拼凑了以下内容:

ggplot(data=test, aes(x=text, y=mi, fill=shi)) + geom_bar(stat="identity")

经过大量调整和多次迭代,这是我得到的最干净的结果:

尽管我尝试遵循链接示例中的代码并且它们没有提供有关颜色选择的具体细节,但渐变似乎是默认设置。

这是一个渐变而不是谨慎的颜色,我怎样才能为 mi 计数和 shi 计数获得谨慎的颜色?

我尝试了提到here 的解决方案,但这只会导致另一个具有不同颜色的单独键,并且每个条都有不同颜色的轮廓。

【问题讨论】:

标签: r ggplot2 bar-chart categorical-data


【解决方案1】:

你可以这样做:

# 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")

换句话说,您确实需要长格式的数据,如here 所述。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-31
    • 2018-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-29
    • 1970-01-01
    相关资源
    最近更新 更多