![](/img/trans.png)
[英]How to change the colors of a barplot in ggplot keeping legend variables same?
[英]How to change colors on barplot?
我的酒吧都是粉紅色的,想要知道如何將它們從淺到深改變為從紅色到藍色,從白色到紅色等顏色。
barplot(d1[1:25,]$freq, las = 2, names.arg =
stri_trans_totitle(d1[1:25,]$word),
col = "pink", main ="Most Frequent Words \n in The Three Musketeers",
ylab = "Word frequencies", ylim=c(0,2000))
對於barplot()
提供的每個height
值,創建相應的顏色。 在這種情況下,我創建了一個顏色調色板,從灰色漸變到深藍色。
# create data frame
df <- data.frame(
id = 1:5
, Coolness_Level = 1:5
, Coolness_Color = NA
, stringsAsFactors = FALSE
)
# view data
df
# id Coolness_Level Coolness_Color
# 1 1 1 NA
# 2 2 2 NA
# 3 3 3 NA
# 4 4 4 NA
# 5 5 5 NA
# I want colors to progress
# from gray to dark blue
color.function <- colorRampPalette( c( "#CCCCCC" , "#104E8B" ) )
# decide how many groups I want, in this case 5
# so the end product will have 5 bars
color.ramp <- color.function( n = nrow( x = df ) )
# view colors
color.ramp
# [1] "#CCCCCC" "#9DACBB" "#6E8DAB" "#3F6D9B" "#104E8B"
# assign every row in df
# a color
# based on their $Coolness_Level
df$Coolness_Color <-
as.character(
x = cut(
x = rank( x = df$Coolness_Level ) # used to assign order in the event of ties
, breaks = nrow( x = df ) # same as the 'n' supplied in color.function()
, labels = color.ramp # label the groups with the color in color.ramp
)
)
# view the data
df
# id Coolness_Level Coolness_Color
# 1 1 1 #CCCCCC
# 2 2 2 #9DACBB
# 3 3 3 #6E8DAB
# 4 4 4 #3F6D9B
# 5 5 5 #104E8B
# make barplot
# and save as PNG
png( filename = "my_cool_barplot.png"
, units = "px"
, height = 1600
, width = 1600
, res = 300
)
barplot( height = df$Coolness_Level
, names.arg = df$id
, las = 1
, col = df$Coolness_Color
, border = NA # eliminates borders around the bars
, main = "Is Coolness Correlated with Higher ID #s?"
, ylab = "Coolness Level"
, xlab = "ID #"
)
# shut down plotting device
dev.off()
# end of script #
根據?barplot
:
col a vector of colors for the bars or bar components. By default, grey is used if height is a vector, and a gamma-corrected grey palette if height is a matrix.
您需要將所需的顏色作為向量添加到col
參數。 如果指定的顏色少於條形,則顏色將從一開始就被回收。
首先生成一些數據。
# Load packages
library(dplyr, warn.conflicts = FALSE, quietly = TRUE, )
# Generate some miles per gallon per number of cylinders data using the mtcars
foo <- mtcars %>%
group_by(cyl) %>%
summarise(mpg = mean(mpg))
情節與彩虹的顏色
with(foo, barplot(mpg,
names.arg = cyl,
xlab = "Number of cylinders",
ylab = "Mean miles per gallon",
col = rainbow(3)))
用灰度繪圖
with(foo, barplot(mpg,
names.arg = cyl,
xlab = "Number of cylinders",
ylab = "Mean miles per gallon",
col = grey.colors(3)))
制作自己的顏色漸變,然后繪制
pal <- colorRampPalette(colors = c("lightblue", "blue"))(3)
with(foo, barplot(mpg,
names.arg = cyl,
xlab = "Number of cylinders",
ylab = "Mean miles per gallon",
col = pal))
使用用戶指定的調色板繪圖
with(foo, barplot(mpg,
names.arg = cyl,
xlab = "Number of cylinders",
ylab = "Mean miles per gallon",
col = c("#E69F00", "#56B4E9", "#009E73")))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.