R语言 在ggplot中突出显示轴文本上的特定项目

ca1c2owp  于 2023-07-31  发布在  其他
关注(0)|答案(1)|浏览(79)

我尝试对x轴上的名称中包含'('的项目使用粗体,但我的方法没有产生预期的结果,相反,它将一些不包含'('的名称加粗。你能看看我错过了什么吗:

bold_rows <- grepl("\\(", mtcars[,1])

ggplot(mtcars, aes(y = mpg, x = rownames(mtcars))) +
    geom_col() +
    theme(axis.text.x = element_text(angle = 90, face = ifelse(bold_rows, "bold", "plain")))

字符串
以下是示例数据:

dput(mtcars) structure(list(names = structure(c(18L, 19L, 5L, 13L, 14L, 31L, 7L, 21L, 20L, 22L, 23L, 24L, 25L, 26L, 2L, 15L, 4L, 9L, 12L, 29L, 6L, 1L, 3L, 27L, 10L, 28L, 16L, 11L, 8L, 17L, 32L), levels = c("AMC Javelin", "Cadillac Fleetwood", "Camaro Z28", "Chrysler Imperial", "Datsun 710", "Dodge Challenger", "Duster 360", "Ferrari Dino (Choix-3)", "Fiat 128", "Fiat X1-9", "Ford Pantera L", "Honda Civic (Choix-2)", "Hornet 4 Drive", "Hornet Sportabout", "Lincoln Continental", "Lotus Europa", "Maserati Bora", "Mazda RX4", "Mazda RX4 Wag", "Merc 230", "Merc 240D", "Merc 280", "Merc 280C", "Merc 450SE", "Merc 450SL", "Merc 450SLC", "Pontiac Firebird", "Porsche 914-2", "Toyota Corolla", "Toyota Corona", "Valiant (Choix-1)", "Volvo 142E"), class = "factor"), carb = c("4", "4", "1", "1", "2", "1", "4", "2", "2", "4", "4", "3", "3", "3", "4", "4", "4", "1", "2", "1", "2", "2", "4", "2", "1", "2", "2", "4", "6", "8", "2"), gear = c("4", "4", "4", "3", "3", "3", "3", "4", "4", "4", "4", "3", "3", "3", "3", "3", "3", "4", "4", "4", "3", "3", "3", "3", "4", "5", "5", "5", "5", "5", "4"), am = c("1", "1", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "1", "1", "0", "0", "0", "0", "1", "1", "1", "1", "1", "1", "1"), vs = c("0", "0", "1", "1", "0", "1", "0", "1", "1", "1", "1", "0", "0", "0", "0", "0", "0", "1", "1", "1", "0", "0", "0", "0", "1", "0", "1", "0", "0", "0", "1"), qsec = c("16.46", "17.02", "18.61", "19.44", "17.02", "20.22", "15.84", "20", "22.9", "18.3", "18.9", "17.4", "17.6", "18", "17.98", "17.82", "17.42", "19.47", "18.52", "19.9", "16.87", "17.3", "15.41", "17.05", "18.9", "16.7", "16.9", "14.5", "15.5", "14.6", "18.6"), wt = c("2.62", "2.875", "2.32", "3.215", "3.44", "3.46", "3.57", "3.19", "3.15", "3.44", "3.44", "4.07", "3.73", "3.78", "5.25", "5.424", "5.345", "2.2", "1.615", "1.835", "3.52", "3.435", "3.84", "3.845", "1.935", "2.14", "1.513", "3.17", "2.77", "3.57", "2.78"), drat = c("3.9", "3.9", "3.85", "3.08", "3.15", "2.76", "3.21", "3.69", "3.92", "3.92", "3.92", "3.07", "3.07", "3.07", "2.93", "3", "3.23", "4.08", "4.93", "4.22", "2.76", "3.15", "3.73", "3.08", "4.08", "4.43", "3.77", "4.22", "3.62", "3.54", "4.11"), hp = c("110", "110", "93", "110", "175", "105", "245", "62", "95", "123", "123", "180", "180", "180", "205", "215", "230", "66", "52", "65", "150", "150", "245", "175", "66", "91", "113", "264", "175", "335", "109"), disp = c("160", "160", "108", "258", "360", "225", "360", "146.7", "140.8", "167.6", "167.6", "275.8", "275.8", "275.8", "472", "460", "440", "78.7", "75.7", "71.1", "318", "304", "350", "400", "79", "120.3", "95.1", "351", "145", "301", "121"), cyl = c("6", "6", "4", "6", "8", "6", "8", "4", "4", "6", "6", "8", "8", "8", "8", "8", "8", "4", "4", "4", "8", "8", "8", "8", "4", "4", "4", "8", "6", "8", "4"), mpg = c("21", "21", "22.8", "21.4", "18.7", "18.1", "14.3", "24.4", "22.8", "19.2", "17.8", "16.4", "17.3", "15.2", "10.4", "10.4", "14.7", "32.4", "30.4", "33.9", "15.5", "15.2", "13.3", "19.2", "27.3", "26", "30.4", "15.8", "19.7", "15", "21.4")), row.names = c("Mazda RX4", "Mazda RX4 Wag", "Datsun 710", "Hornet 4 Drive", "Hornet Sportabout", "Valiant (Choix-1)", "Duster 360", "Merc 240D", "Merc 230", "Merc 280", "Merc 280C", "Merc 450SE", "Merc 450SL", "Merc 450SLC", "Cadillac Fleetwood", "Lincoln Continental", "Chrysler Imperial", "Fiat 128", "Honda Civic (Choix-2)", "Toyota Corolla", "Dodge Challenger", "AMC Javelin", "Camaro Z28", "Pontiac Firebird", "Fiat X1-9", "Porsche 914-2", "Lotus Europa", "Ford Pantera L", "Ferrari Dino (Choix-3)", "Maserati Bora", "Volvo 142E"), class = "data.frame")

kd3sttzy

kd3sttzy1#

可能您还在使用内置数据集mtcars。你可以把它赋值给例如df,并像这样使用你的代码:

df = structure(list(names = structure(c(18L, 19L, 5L, 13L, 14L, 31L, 7L, 21L, 20L, 22L, 23L, 24L, 25L, 26L, 2L, 15L, 4L, 9L, 12L, 29L, 6L, 1L, 3L, 27L, 10L, 28L, 16L, 11L, 8L, 17L, 32L), levels = c("AMC Javelin", "Cadillac Fleetwood", "Camaro Z28", "Chrysler Imperial", "Datsun 710", "Dodge Challenger", "Duster 360", "Ferrari Dino (Choix-3)", "Fiat 128", "Fiat X1-9", "Ford Pantera L", "Honda Civic (Choix-2)", "Hornet 4 Drive", "Hornet Sportabout", "Lincoln Continental", "Lotus Europa", "Maserati Bora", "Mazda RX4", "Mazda RX4 Wag", "Merc 230", "Merc 240D", "Merc 280", "Merc 280C", "Merc 450SE", "Merc 450SL", "Merc 450SLC", "Pontiac Firebird", "Porsche 914-2", "Toyota Corolla", "Toyota Corona", "Valiant (Choix-1)", "Volvo 142E"), class = "factor"), carb = c("4", "4", "1", "1", "2", "1", "4", "2", "2", "4", "4", "3", "3", "3", "4", "4", "4", "1", "2", "1", "2", "2", "4", "2", "1", "2", "2", "4", "6", "8", "2"), gear = c("4", "4", "4", "3", "3", "3", "3", "4", "4", "4", "4", "3", "3", "3", "3", "3", "3", "4", "4", "4", "3", "3", "3", "3", "4", "5", "5", "5", "5", "5", "4"), am = c("1", "1", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "1", "1", "0", "0", "0", "0", "1", "1", "1", "1", "1", "1", "1"), vs = c("0", "0", "1", "1", "0", "1", "0", "1", "1", "1", "1", "0", "0", "0", "0", "0", "0", "1", "1", "1", "0", "0", "0", "0", "1", "0", "1", "0", "0", "0", "1"), qsec = c("16.46", "17.02", "18.61", "19.44", "17.02", "20.22", "15.84", "20", "22.9", "18.3", "18.9", "17.4", "17.6", "18", "17.98", "17.82", "17.42", "19.47", "18.52", "19.9", "16.87", "17.3", "15.41", "17.05", "18.9", "16.7", "16.9", "14.5", "15.5", "14.6", "18.6"), wt = c("2.62", "2.875", "2.32", "3.215", "3.44", "3.46", "3.57", "3.19", "3.15", "3.44", "3.44", "4.07", "3.73", "3.78", "5.25", "5.424", "5.345", "2.2", "1.615", "1.835", "3.52", "3.435", "3.84", "3.845", "1.935", "2.14", "1.513", "3.17", "2.77", "3.57", "2.78"), drat = c("3.9", "3.9", "3.85", "3.08", "3.15", "2.76", "3.21", "3.69", "3.92", "3.92", "3.92", "3.07", "3.07", "3.07", "2.93", "3", "3.23", "4.08", "4.93", "4.22", "2.76", "3.15", "3.73", "3.08", "4.08", "4.43", "3.77", "4.22", "3.62", "3.54", "4.11"), hp = c("110", "110", "93", "110", "175", "105", "245", "62", "95", "123", "123", "180", "180", "180", "205", "215", "230", "66", "52", "65", "150", "150", "245", "175", "66", "91", "113", "264", "175", "335", "109"), disp = c("160", "160", "108", "258", "360", "225", "360", "146.7", "140.8", "167.6", "167.6", "275.8", "275.8", "275.8", "472", "460", "440", "78.7", "75.7", "71.1", "318", "304", "350", "400", "79", "120.3", "95.1", "351", "145", "301", "121"), cyl = c("6", "6", "4", "6", "8", "6", "8", "4", "4", "6", "6", "8", "8", "8", "8", "8", "8", "4", "4", "4", "8", "8", "8", "8", "4", "4", "4", "8", "6", "8", "4"), mpg = c("21", "21", "22.8", "21.4", "18.7", "18.1", "14.3", "24.4", "22.8", "19.2", "17.8", "16.4", "17.3", "15.2", "10.4", "10.4", "14.7", "32.4", "30.4", "33.9", "15.5", "15.2", "13.3", "19.2", "27.3", "26", "30.4", "15.8", "19.7", "15", "21.4")), row.names = c("Mazda RX4", "Mazda RX4 Wag", "Datsun 710", "Hornet 4 Drive", "Hornet Sportabout", "Valiant (Choix-1)", "Duster 360", "Merc 240D", "Merc 230", "Merc 280", "Merc 280C", "Merc 450SE", "Merc 450SL", "Merc 450SLC", "Cadillac Fleetwood", "Lincoln Continental", "Chrysler Imperial", "Fiat 128", "Honda Civic (Choix-2)", "Toyota Corolla", "Dodge Challenger", "AMC Javelin", "Camaro Z28", "Pontiac Firebird", "Fiat X1-9", "Porsche 914-2", "Lotus Europa", "Ford Pantera L", "Ferrari Dino (Choix-3)", "Maserati Bora", "Volvo 142E"), class = "data.frame")

bold_rows <- grepl("\\(", df[,1])

library(ggplot2)
ggplot(mtcars, aes(y = mpg, x = rownames(mtcars))) +
  geom_col() +
  theme(axis.text.x = element_text(angle = 90, face = ifelse(bold_rows, "bold", "plain")))

字符串
x1c 0d1x的数据
创建于2023-07-17带有reprex v2.0.2

相关问题