簡體   English   中英

如何改變條形圖上的顏色?

[英]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值,創建相應的顏色。 在這種情況下,我創建了一個顏色調色板,從灰色漸變到深藍色。

可重復的例子

拾色器幫助我將一般顏色轉換為十六進制顏色值

Barplot

# 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM