我想要一个带有颜色渐变的翻转条形图来区分条形图。下面是我的数据集的前20行bb_count是我的数据集和生成条形图的代码。正确绘制了条形图,但未应用颜色渐变,而是出现错误:
富显示对象时出错:错误:提供给连续刻度的离散值
bb_count <- bb %>%
count(chord, sort = TRUE)
# chord n
# C:maj 1183
# G:maj 1140
# A:maj 1071
# D:maj 1054
# F:maj 859
# E:maj 839
# Bb:maj 718
# B:maj 503
# Ab:maj 375
# Eb:maj 360
# A:min 328
# E:min 298
# Db:maj 293
# D:min 250
# B:min 236
# N 201
# E:min7 186
# C:min 176
# D:7 176
# A:min7 170
# Creating a bar plot from `bb_count`
bb_count %>%
slice(1:20) %>%
mutate(share = n/sum(n)) %>%
mutate(chord = reorder(chord, share)) %>%
ggplot(aes(x = chord, y = share, fill = chord)) +
geom_bar(stat = 'identity', width = 0.95) +
coord_flip() +
scale_fill_gradient(low = "green", high = "red") +
xlab("Share of total chords") +
ylab("Chord")
答案 0 :(得分:1)
Error: Discrete value supplied to continuous scale
您的x
是离散的,因此您需要scale_x_discrete
df %>%
slice(1:20) %>%
mutate(share = n/sum(n)) %>%
mutate(chord = reorder(chord, share)) %>%
ggplot(aes(x = chord, y = share, fill = chord)) +
geom_bar(stat = 'identity', width = 0.95) +
coord_flip() +
scale_x_discrete() +
xlab("Share of total chords") +
ylab("Chord")
数据:
library(data.table)
df <- fread("
# chord n
# C:maj 1183
# G:maj 1140
# A:maj 1071
# D:maj 1054
# F:maj 859
# E:maj 839
# Bb:maj 718
# B:maj 503
# Ab:maj 375
# Eb:maj 360
# A:min 328
# E:min 298
# Db:maj 293
# D:min 250
# B:min 236
# N 201
# E:min7 186
# C:min 176
# D:7 176
# A:min7 170
")