- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我不确定是否geom_bar
能够(可能我不能)用 geom_bar
创建我需要的图.我想要一个条形图,但不是从 0 开始,我有一个最小值和最大值作为每个条形的起点和终点。所需的输出如下所示:
数据结构是
dput(datos)
structure(list(CDG = c("Alicante", "Alicante", "Alicante", "Alicante",
"Alicante", "Alicante", "Alicante", "Alicante", "Alicante", "Alicante",
"Alicante", "Castellón", "Castellón", "Castellón", "Castellón",
"Castellón", "Castellón", "Castellón", "Castellón", "Castellón",
"Castellón", "Castellón", "Castellón", "Castellón", "Castellón",
"Castellón", "Castellón", "Castellón", "Castellón", "Valencia",
"Valencia", "Valencia", "Valencia", "Valencia", "Valencia", "Valencia",
"Valencia", "Valencia", "Valencia", "Valencia", "Valencia", "Valencia",
"Valencia", "Valencia", "Valencia", "Valencia", "Valencia", "Valencia",
"Valencia", "Valencia", "Valencia", "Valencia", "Valencia", "Valencia",
"Valencia"), ESTACION = structure(c(5L, 1L, 2L, 3L, 8L, 23L,
24L, 21L, 31L, 22L, 41L, 26L, 12L, 16L, 13L, 14L, 15L, 18L, 28L,
29L, 19L, 37L, 39L, 27L, 49L, 52L, 53L, 54L, 55L, 4L, 7L, 6L,
9L, 10L, 11L, 17L, 20L, 33L, 25L, 30L, 32L, 36L, 35L, 34L, 38L,
42L, 46L, 48L, 47L, 43L, 45L, 44L, 50L, 51L, 40L), .Label = c("Alacant-El_Pla",
"Alacant-Florida_Babel", "Alacant-Rabassa", "Albalat_dels_Tarongers",
"Alcoi-Verge_dels_Lliris", "Algar_de_Palancia", "Alzira", "Benidorm",
"Beniganim", "Bunnol-Cemex", "Burjassot-Facultats", "Burriana",
"Castello-Ermita", "Castello-Grau", "Castello-Patronat_d.Esports",
"Castello-Penyeta", "Caudete_de_las_Fuentes", "Cirat", "Coratxar",
"Cortes_de_Pall", "Elda-Lacy", "El_Pinos", "Elx-Agroalimentari",
"Elx-Parc_de_Bombers", "Gandia", "L.Alcora", "La_Vall_d.Uix",
"Morella", "Onda", "Ontinyent", "Orihuela", "Paterna-CEAM", "Quart_de_Poblet",
"Sagunt-CEA", "Sagunt-Nord", "Sagunt-Port", "Sant_Jordi", "Torrebaja",
"Torre_Endomenech", "Torrent-El_Vedat", "Torrevieja", "Valencia-Albufera",
"Valencia-Avd._Francia", "Valencia-Bulevard_Sud", "Valencia-Moli_del_Sol",
"Valencia-Pista_de_Silla", "Valencia-Politecnic", "Valencia-Vivers",
"Vilafranca", "Vilamarxant", "Villar_del_Arzobispo", "Vinaros_Planta",
"Vinaros_Plataforma", "Viver", "Zorita"), class = "factor"),
MAXIMO_HORARIO = c(NA, 70.7, 80, 63.7, 93.5, 73.8, 82.3,
59, 71, 85.5, 62, 73, 38, 87.2, 89.2, 82, 28.5, 84, 99.5,
86, 87, 94, 84, 70, 85.5, 91.2, 85.3, 72.4, 97.5, NA, 63.3,
96.2, 81, 68, 72.3, 64.5, 67.4, 59.5, 82.7, 77, 65.5, 89.5,
76.5, NA, 80, NA, 65.3, 66.2, 72.5, 65.8, 50.2, 54.8, 71.2,
79.5, NA), PROMEDIO_DIARIO = c(NA, 56.8, 64.5, 52.9, 86.9,
69.6, 79.4, 59, 73.9, 82.4, 61.4, 62.2, 43.1, 85.1, 55.2,
77.7, 26.2, 81.9, 94.3, 85.8, 85.1, 89.8, 80.5, 66.6, 83.3,
94.3, 87.5, 72.9, 93.3, 100.3, 60.8, 94.2, 74, 68.4, 62.5,
66.7, 66.5, 45.5, 78, 79.4, 68.2, 81.1, 72.6, NA, 77.1, NA,
55.1, 54.7, 66.8, 54.1, 49.3, 46.6, 63.9, 81.8, NA), MINIMO_HORARIO = c(NA,
26.8, 24.5, 30.2, 62, 46.5, 56.2, 59, 58.2, 67.8, 50.8, 16.7,
11.5, 63.2, 2, 62, 18, 75.2, 87.5, 80, 77.8, 83.2, 71.8,
52.5, 78.3, 88.9, 83.7, 66.6, 84.3, NA, 26.2, 80, 42, 47.2,
8.2, 43, 45.5, 4.5, 47.5, 55.7, 39.8, 68.7, 58.8, NA, 74.3,
NA, 11.5, 7.2, 25.5, 18.2, 8.5, 7.2, 14.7, 70.5, NA), MAXIMO_OCTOHORARIO = c(NA,
66.1, 81.1, 55.2, 96.9, 79.2, 89.1, NA, 81.1, 90.5, 64.6,
79.8, 66.1, 91.4, 80.8, 80.8, 28.4, 83.8, 96.1, 88.3, 88.5,
92.3, 82.7, 71.4, 85.6, 97.4, 89.1, 75.5, 95.1, NA, 79.5,
100.3, 90.4, 76.1, 83.3, 75.5, 79.7, 66.7, 87.7, 87.5, 78.3,
83.8, 76.8, NA, 76.8, NA, 74.5, 73, 81.2, 67.8, 73.1, 69,
79.9, 88.2, NA), VARIACION_MAX_HOR = c(NA, -15.1, -7, -21.3,
-10.2, -17.2, -18, NA, -18.2, -12.8, -8.2, -23.8, -57.8,
-8, 2.7, -1.3, -0.8, -5.7, -1.5, -10.8, -5.8, -0.8, -8.3,
-19.7, -6.5, -7.7, -11.9, -16.8, -2.7, NA, -27.7, -19.1,
-19.5, -24, -21.7, -28.2, -22.6, -23.7, -17.8, -25, -29.2,
-5.2, -19.5, NA, -14.3, NA, -32.2, -20.5, -20.7, -20.4, -38.1,
-29, -21.6, -20.5, NA), VARIACION_PRM_DIA = c(NA, -16.2,
-10.4, -18.9, -4, -5.8, -7.7, NA, -3, -9.4, 2, -22.9, -27.2,
1.1, -4.7, 16.8, -0.9, 0, 0.5, -1.9, 1.3, 15.1, 23.7, -14.1,
-4.8, 1.7, 14.8, -8, 14.7, -0.7, -20, -7.6, -17.9, -12.7,
-20.7, -10.7, -14.7, -24.3, -9.1, -13.6, -11.8, 18, -10.1,
NA, 10.9, NA, -24.4, -20.2, -14.9, -18.7, -25.4, -30, -18.6,
-6.7, NA), OSCILACION_DIARIO = c(NA, 43.9, 55.5, 33.5, 31.5,
27.3, 26.1, 0, 12.8, 17.7, 11.2, 56.3, 26.5, 24, 87.2, 20,
10.5, 8.8, 12, 6, 9.2, 10.8, 12.2, 17.5, 7.2, 2.3, 1.6, 5.8,
13.2, NA, 37.1, 16.2, 39, 20.8, 64.1, 21.5, 21.9, 55, 35.2,
21.3, 25.7, 20.8, 17.7, NA, 5.7, NA, 53.8, 59, 47, 47.6,
41.7, 47.6, 56.5, 9, NA), ESTACIONALIDAD_MAX = c(NA, -43,
-37.1, -50.2, -30.3, -46.8, -35.7, -55.6, -44.6, -36.1, -48.1,
-45.6, -72.3, -37.5, -29.7, -38.8, -75.3, -38.9, -29.1, -39.4,
-36.9, -30.3, -33.6, -42, -40.7, -17.3, -33.4, -46.7, -28.9,
NA, -53.2, -22, -41.9, -46.8, -43, -51, -43.6, -50.1, -39.4,
-43.3, -45.7, -32.5, -39.8, NA, -35.2, NA, -39.5, -43.3,
-39.9, -43.3, -58.1, -50.9, -45, -44.3, NA), ESTACIONALIDAD_MED = c(NA,
-15.2, -10.7, -28.9, -4.3, -11, 3.8, -17.6, 20.2, -4.2, -30.9,
-10.4, -27.6, 2.7, -0.4, 17.5, -61.5, 4.7, -5.7, 6.1, -12.7,
6.9, 18.7, -10.2, -9.1, 30.4, -12, -3.3, 20.2, 32.1, -5.1,
22, 2.4, -2.8, -6.9, -18.7, -13.9, -16.2, 10.6, -4.1, 1.5,
22.1, 12.9, NA, 12.2, NA, 12.9, -3.7, -1.6, -13.3, -19.3,
-25, -15.5, -0.8, NA), X = c(NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA)), .Names = c("CDG", "ESTACION", "MAXIMO_HORARIO",
"PROMEDIO_DIARIO", "MINIMO_HORARIO", "MAXIMO_OCTOHORARIO", "VARIACION_MAX_HOR",
"VARIACION_PRM_DIA", "OSCILACION_DIARIO", "ESTACIONALIDAD_MAX",
"ESTACIONALIDAD_MED", "X"), row.names = c(NA, -55L), class = "data.frame")
library(ggplot2)
library(reshape2)
library(grid)
datos=read.csv("previozono.csv",header=T,sep=";", na.strings="-99.9")
datap1=cbind.data.frame(datos$ESTACION,datos$MAXIMO_HORARIO,datos$PROMEDIO_DIARIO)
names(datap1) <- c("estacion","Maximo_horario","Promedio_diario")
dataplot1 <- melt(datap1,id.vars='estacion')
plot1=ggplot(dataplot1)+ geom_bar(aes(x=estacion,y=value,fill=variable),
stat='identity',position='dodge') + xlab(" ") + ylab(" ") +
theme(axis.text.x=element_text(angle=80, size=8, hjust=1, vjust=1),legend.position="bottom") +
theme(axis.text.y=element_text(size=8)) +
scale_y_continuous(limits = c(0,250),breaks=c(0,50,100,150,200,250)) +
theme(plot.margin=unit(c(0,1,0,0),"mm")) +
ggtitle(paste("Ozono - Máximo horario y promedio diario - ",format(Sys.time(), "%d/%m/%Y"),sep="")) +
scale_fill_manual(values=c("#E95875", "#99CCFF")) + labs(fill="")
最佳答案
您可以通过 geom_segment
实现此目的像这样(对于此解决方案,您将需要 datap1
的宽格式数据):
ggplot(datap1) +
geom_segment(aes(x=estacion, xend=estacion, y=Promedio_diario, yend=Maximo_horario), size=3, color="orange") +
geom_hline(yintercept=mean((datap1$Maximo_horario + datap1$Promedio_diario)/2, na.rm=TRUE), color="red") +
theme_bw() +
theme(axis.text.x=element_text(angle=90))
geom_linerange
会给你同样的结果:
ggplot(datap1) +
geom_linerange(aes(x=estacion, y=average, ymin=Promedio_diario, ymax=Maximo_horario), size=3, color="orange") +
geom_hline(yintercept=mean((datap1$Maximo_horario + datap1$Promedio_diario)/2, na.rm=TRUE), color="red") +
theme_bw() +
theme(axis.text.x=element_text(angle=90))
geom_pointrange
也可能是一种选择。
关于r - geom_bar 从最小到最大数据值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29916770/
我正在从 Stata 迁移到 R(plm 包),以便进行面板模型计量经济学。在 Stata 中,面板模型(例如随机效应)通常报告组内、组间和整体 R 平方。 I have found plm 随机效应
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 6年前关闭。 Improve this qu
我想要求用户输入整数值列表。用户可以输入单个值或一组多个值,如 1 2 3(spcae 或逗号分隔)然后使用输入的数据进行进一步计算。 我正在使用下面的代码 EXP <- as.integer(rea
当 R 使用分类变量执行回归时,它实际上是虚拟编码。也就是说,省略了一个级别作为基础或引用,并且回归公式包括所有其他级别的虚拟变量。但是,R 选择了哪一个作为引用,以及我如何影响这个选择? 具有四个级
这个问题基本上是我之前问过的问题的延伸:How to only print (adjusted) R-squared of regression model? 我想建立一个线性回归模型来预测具有 15
我在一台安装了多个软件包的 Linux 计算机上安装了 R。现在我正在另一台 Linux 计算机上设置 R。从他们的存储库安装 R 很容易,但我将不得不使用 安装许多包 install.package
我正在阅读 Hadley 的高级 R 编程,当它讨论字符的内存大小时,它说: R has a global string pool. This means that each unique strin
我们可以将 Shiny 代码写在两个单独的文件中,"ui.R"和 "server.R" , 或者我们可以将两个模块写入一个文件 "app.R"并调用函数shinyApp() 这两种方法中的任何一种在性
我正在使用 R 通过 RGP 包进行遗传编程。环境创造了解决问题的功能。我想将这些函数保存在它们自己的 .R 源文件中。我这辈子都想不通怎么办。我尝试过的一种方法是: bf_str = print(b
假设我创建了一个函数“function.r”,在编辑该函数后我必须通过 source('function.r') 重新加载到我的全局环境中。无论如何,每次我进行编辑时,我是否可以避免将其重新加载到我的
例如,test.R 是一个单行文件: $ cat test.R # print('Hello, world!') 我们可以通过Rscript test.R 或R CMD BATCH test.R 来
我知道我可以使用 Rmd 来构建包插图,但想知道是否可以更具体地使用 R Notebooks 来制作包插图。如果是这样,我需要将 R Notebooks 编写为包小插图有什么不同吗?我正在使用最新版本
我正在考虑使用 R 包的共享库进行 R 的站点安装。 多台计算机将访问该库,以便每个人共享相同的设置。 问题是我注意到有时您无法更新包,因为另一个 R 实例正在锁定库。我不能要求每个人都关闭它的 R
我知道如何从命令行启动 R 并执行表达式(例如, R -e 'print("hello")' )或从文件中获取输入(例如, R -f filename.r )。但是,在这两种情况下,R 都会运行文件中
我正在尝试使我当前的项目可重现,因此我正在创建一个主文档(最终是一个 .rmd 文件),用于调用和执行其他几个文档。这样我自己和其他调查员只需要打开和运行一个文件。 当前设置分为三层:主文件、2 个读
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 5年前关闭。 Improve this qu
我的 R 包中有以下描述文件 Package: blah Title: What the Package Does (one line, title case) Version: 0.0.0.9000
有没有办法更有效地编写以下语句?accel 是一个数据框。 accel[[2]]<- accel[[2]]-weighted.mean(accel[[2]]) accel[[3]]<- accel[[
例如,在尝试安装 R 包时 curl作为 usethis 的依赖项: * installing *source* package ‘curl’ ... ** package ‘curl’ succes
我想将一些软件作为一个包共享,但我的一些脚本似乎并不能很自然地作为函数运行。例如,考虑以下代码块,其中“raw.df”是一个包含离散和连续类型变量的数据框。函数“count.unique”和“squa
我是一名优秀的程序员,十分优秀!