我对ggplot2中的传说有疑问.我设法在同一图表中绘制三条线,并想要添加使用三种颜色的图例.这是使用的代码
library(ggplot2)
require(RCurl)
link<-getURL("https://dl.dropbox.com/s/ds5zp9jonznpuwb/dat.txt")
datos<- read.csv(textConnection(link),header=TRUE,sep=";")
datos$fecha <- as.POSIXct(datos[,1], format="%d/%m/%Y")
temp = ggplot(data=datos,aes(x=fecha, y=TempMax,colour="1")) +
geom_line(colour="red") + opts(title="TITULO") +
ylab("Temperatura (C)") + xlab(" ") +
scale_y_continuous(limits = c(-10,40)) +
geom_line(aes(x=fecha, y=TempMedia,colour="2"),colour="green") +
geom_line(aes(x=fecha, y=TempMin,colour="2"),colour="blue") +
scale_colour_manual(values=c("red","green","blue"))
temp
Run Code Online (Sandbox Code Playgroud)
和输出

我想添加一个带有三种颜色的图例和变量的名称(TempMax,TempMedia和TempMin).我试过了
scale_colour_manual
Run Code Online (Sandbox Code Playgroud)
但找不到确切的方法.
遗憾的是,原始数据已从链接网站中删除,无法恢复.但它们来自具有此格式的meteo数据文件
"date","Tmax","Tmin","Tmed","Precip.diaria","Wmax","Wmed"
2000-07-31 00:00:00,-1.7,-1.7,-1.7,-99.9,20.4,20.4
2000-08-01 00:00:00,22.9,19,21.11,-99.9,6.3,2.83
2000-08-03 00:00:00,24.8,12.3,19.23,-99.9,6.8,3.87
2000-08-04 00:00:00,20.3,9.4,14.4,-99.9,8.3,5.29
2000-08-08 00:00:00,25.7,14.4,19.5,-99.9,7.9,3.22
2000-08-09 00:00:00,29.8,16.2,22.14,-99.9,8.5,3.27
2000-08-10 00:00:00,30,17.8,23.5,-99.9,7.7,3.61
2000-08-11 00:00:00,27.5,17,22.68,-99.9,8.8,3.85
2000-08-12 00:00:00,24,13.3,17.32,-99.9,8.4,3.49
Run Code Online (Sandbox Code Playgroud) 从这里找到的帮助我设法创建了这个多时隙面板:
使用以下代码:
library(zoo)
library(ggplot2)
datos=read.csv("paterna.dat",sep=";",header=T,na.strings="-99.9")
datos$dia=as.POSIXct(datos[,1], format="%y/%m/%d %H:%M:%S")
datos$Precipitación[is.na(datos$Precipitación)]=0
xlim = as.POSIXct(c("2010-05-12 00:00:00", "2010-05-12 23:50:00"))
ylim = trunc(max(datos$Precipitación) + 5)
tmax = trunc(max(datos$Temperatura) + 5)
tmin = trunc(min(datos$Temperatura) - 5)
tmx = max(datos$Temperatura)
tmxpos=which.max(datos$Temperatura)
tmn = min(datos$Temperatura)
tmnpos=which.min(datos$Temperatura)
tmp=ggplot(data=datos,aes(x=dia, y=Temperatura)) + geom_line(colour="red") + ylab("Temperatura (ºC)") +
xlab(" ") + scale_x_datetime(limits=xlim ,format = "%H",major='hour') + scale_y_continuous(limits = c(tmin,tmax)) + geom_text(data=datos[tmxpos,], label=tmx, vjust=-1.5, colour="red") + geom_text(data=datos[tmnpos,], label=tmn, vjust=1.5, colour="blue")
pre=ggplot(data=datos,aes(x=dia, y=Precipitación)) + geom_bar(colour="blue",stat="identity",fill="blue") +
ylab("Precipitación (l)") + xlab("Hora solar") + scale_x_datetime(limits=xlim ,format …Run Code Online (Sandbox Code Playgroud) 我需要更改/反转数据框中的行,而不是转置数据,而是将底行移到顶部,依此类推.如果数据框是:
1 2 3
4 5 6
7 8 9
Run Code Online (Sandbox Code Playgroud)
我需要转换为
7 8 9
4 5 6
1 2 3
Run Code Online (Sandbox Code Playgroud)
我读过sort()但我不认为这是我需要的,或者我无法找到方法.
我有一个闪亮的应用程序,显示我的数据的一个很好的html表,使用renderDataTable.然后我想做一些基本的统计,子集数据和计算方法以及其他一些数据.
显示结果时renderTable,我发现日期列未显示日期格式.在图中你可以看到差异.两个表都是从同一个闪亮的Web应用程序中的相同数据集生成的.你能解释一下发生了什么吗?

在这里你可以看到ui.R和server.R.在这个脚本中我只想显示一个表,并对不同的输出感到惊讶.
ui.R
library(shiny)
# Estructura de la página (paneles)
shinyUI(pageWithSidebar(
# Título superior
headerPanel(""),
# Panel lateral izquierdo - selección de datos
sidebarPanel(
helpText("Selecciona las fechas y el tipo de datos.
Pulsa el botón Actualizar."),
selectInput("torre", "Torre:",
list("Agres" = "mariola",
"Alfàs del Pi" = "shelada",
"Altura" = "altura",
"Vistabella del Maestrat" = "vistabella",
"Xàtiva" = "xativa")),
selectInput("tipo", "Intervalo de datos",
list("Diezminutales" = "-datos-10m.csv",
"Diarios" = "-datos-diarios.csv",
"Mensuales" = "-datos-mensuales.csv")),
dateInput('date1',
label = 'Fecha inicial', …Run Code Online (Sandbox Code Playgroud) 我试图NA通过插值从我的数据框中删除s na.approx()但不能删除所有NAs.
我的数据帧是4096x4096,其中270.15是无效值的标志.我需要数据在所有点上连续不断地为气象模型提供信息.昨天我询问并获得了关于如何替换基于另一个数据帧的数据帧中的值的答案.但之后我来了na.approx()然后决定用270.15值替换NA并尝试na.approx()插入数据.但问题是为什么na.approx()不替换所有的NA.
这就是我在做的事情:
用NA替换标志值
> sst4[sst4 == 270.15 ] = NA
Run Code Online (Sandbox Code Playgroud)检查第一列(或任何其他)
> summary(sst4[,1])
Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
271.3 276.4 285.9 285.5 292.3 302.8 1345.0
Run Code Online (Sandbox Code Playgroud)运行na.approx
> sst4=na.approx(sst4,na.rm="FALSE")
Run Code Online (Sandbox Code Playgroud)检查第一列
> summary(sst4[,1])
Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
271.3 276.5 286.3 285.9 292.6 302.8 411.0
Run Code Online (Sandbox Code Playgroud)正如你所看到的那样,411 NA尚未被删除.为什么?它们都对应于前导/结束列值吗?
head(sst4[,1])
[1] NA NA NA NA NA NA
tail(sst4[,1])
[1] …Run Code Online (Sandbox Code Playgroud) 我试图用ggplot2绘制来自气象站的每小时气象数据(这是我第一次使用ggplot).我已设法绘制每日数据,但在缩小到每小时数据时遇到一些问题.数据文件看起来像这样:
FECHA H_SOLAR;DIR_M;VEL_M;TEMP_M;HR;PRECIP
01/06/14 00:50:00;314.3;1.9;14.1;68.0;-99.9
01/06/14 01:50:00;322.0;1.6;13.3;68.9;-99.9
01/06/14 02:50:00;303.5;2.1;12.3;70.9;-99.9
01/06/14 03:50:00;302.4;1.6;11.6;73.1;-99.9
01/06/14 04:50:00;306.5;1.2;10.9;76.4;-99.9
01/06/14 05:50:00;317.1;0.8;12.6;71.5;-99.9
01/06/14 06:50:00;341.8;0.0;17.1;58.8;-99.9
01/06/14 07:50:00;264.6;1.2;21.8;44.9;-99.9
01/06/14 08:50:00;253.8;2.9;24.7;32.2;-99.9
01/06/14 09:50:00;254.6;3.7;26.7;27.7;-99.9
01/06/14 10:50:00;250.7;4.3;28.3;24.9;-99.9
01/06/14 11:50:00;248.5;5.3;29.1;22.6;-99.9
01/06/14 12:50:00;242.8;4.7;30.3;20.4;-99.9
01/06/14 13:50:00;260.7;4.9;31.3;17.4;-99.9
01/06/14 14:50:00;251.8;5.1;31.9;17.1;-99.9
01/06/14 15:50:00;258.1;4.6;32.4;15.3;-99.9
01/06/14 16:50:00;254.3;5.7;32.4;14.0;-99.9
01/06/14 17:50:00;252.5;4.6;32.0;14.1;-99.9
01/06/14 18:50:00;257.4;3.8;31.1;14.9;-99.9
01/06/14 19:50:00;135.8;4.2;26.0;41.2;-99.9
01/06/14 20:50:00;126.0;1.7;23.5;48.7;-99.9
01/06/14 21:50:00;302.8;0.7;21.6;53.9;-99.9
01/06/14 22:50:00;294.2;1.1;19.3;67.4;-99.9
01/06/14 23:50:00;308.5;1.0;17.5;72.4;-99.9
Run Code Online (Sandbox Code Playgroud)
我用这个R命令绘制数据:
datos=read.csv("utiel.dat",sep=";",header=T,na.strings="-99.9")
dia=as.Date(datos[,1],"%y/%m/%d") # Crear índice dia
veloc=zoo(datos[,c("VEL_M")],dia)
gveloc=ggplot(data=datos,aes(dia,veloc))
gveloc + geom_point(colour="blue",cex=1) + ylab("Velocidad (km/h)") + xlab("Fecha") + opts(title="Velocidad media horaria") + scale_x_date(limits = as.Date(c("2007-01-01","2007-01-31")),format = "%Y-%m-%d")
Run Code Online (Sandbox Code Playgroud)
并获得此月度图表,其中包含同一x坐标中一天的所有数据(即可能预期的同一天)

如何设置不仅读取日期而且读取时间,以便可以在其自己的x …
关于AND逻辑运算符的基本问题.我试图根据第1列和第2列的值在我的数据文件niveles.csv中提取一些字段.我想写一个awk句子说"当field1 = date和field2 = area然后打印字段3到5" .
我的数据文件看起来像
01-08-12;1;0;0;0
01-08-12;2;1;1;1
01-08-12;3;0;0;1
................
Run Code Online (Sandbox Code Playgroud)
bash脚本中的awk句子是
date=01-08-2012
area=8
awk 'BEGIN {FS=";"} $1 ~ /'$date'/ && $2 ~ /'$area'/ { print $1 " " $2 " " $3 " " $4 " " $5 }' niveles-rams.cs
Run Code Online (Sandbox Code Playgroud)
但这只是给出了区域编号有8个内部(8,18和28)的三种情况的字段,而我只想要区域8数据
01-08-2012 8 0 0 0
01-08-2012 18 2 2 1
01-08-2012 28 2 1 0
Run Code Online (Sandbox Code Playgroud)
在此先感谢您的关注,对于有经验的用户来说,这肯定是一个简单的问题.
我正在用闪亮的包装做我的第一次尝试,这太棒了.但是,像往常一样,我面临着一些问题.我已经设法,按照闪亮的教程和谷歌,显示两个不同的meteo站的不同情节,但都显示相同的变量.

我想添加另一个输入列表,以便可以选择要绘制的var.当试图运行脚本时,它似乎运行没有任何错误,但没有出现情节,只有选择菜单.

也许在将变量传递给server.R时会出错,因此输出的oblject图不能正确构建,只是一个猜测.试图以一般方式工作,根据输入变量创建函数,但我遗漏了一些东西,可能是关于反应性,也许正确地传递变量,...
这些是ui.R的代码
library("shiny")
shinyUI(pageWithSidebar(
headerPanel('Comparación de zonas - Temperatura'),
sidebarPanel(
selectInput("panel1", "Zona:",
list("Zona 1" = "1",
"Zona 2" = "2",
"Zona 3" = "3",
"Zona 4" = "4")),
selectInput("panel2", "Zona:",
list("Zona 1" = "1",
"Zona 2" = "2",
"Zona 3" = "3",
"Zona 4" = "4")),
selectInput("var", "Variable:",
list("tempc" = "tempc",
"relhum" = "relhum")),
helpText('Al seleccionar la zona se crearán automáticamente
el gráfico de evolución temporal.')
),
mainPanel(
conditionalPanel(condition = "inputId == 'panel1'",plotOutput('myplot')
),
conditionalPanel(condition = "inputId == …Run Code Online (Sandbox Code Playgroud) 我不确定是否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, …Run Code Online (Sandbox Code Playgroud) 在阅读了很多帖子和网站后,我找不到如何从我的lon-lat数据表创建多边形shapefile.我想创建像这样的地图.

我的csv数据文件包含地中海1000点的经度,纬度和属性.我想按属性创建shapefile子集化数据,然后用ggplot2绘制geom_polygon,填充属性.
我试过这个R代码(来自/sf/answers/1792571371/)但没有成功
library("sp")
library("rgdal")
clust1 <- subset(datos, datos$cluster == 1)
coords<-cbind(clust1$longitud,clust1$latitud)
sp_poly <- SpatialPolygons(list(Polygons(list(Polygon(coords)), ID=1)))
sp_poly_df <- SpatialPolygonsDataFrame(sp_poly, data=data.frame(ID=1))
writeOGR(sp_poly_df, "chull", layer="chull", driver="ESRI Shapefile")
ggplot() + geom_polygon(data=sp_poly_df, aes(x=long, y=lat, group=group))
Run Code Online (Sandbox Code Playgroud)
这产生的输出显然不是shapefile/polygon
plot(sp_poly_df) 给出这个:
我是否需要先使用ggplot强化sp_poly_df以进行绘图?
如何创建shapefile或SpatialPolygon?我想将所有具有相同聚类属性的点合并,以映射数据集中的不同区域/多边形,然后使用聚类值填充多边形.也许这样,创建多边形/ shapefile,不是生成这种类型的地图的最佳方法.
也尝试了,geom_map但它不是我想要的:
ggplot() +
geom_point(data=datos, aes(x=longitud, y=latitud, color=id),
alpha=1, na.rm=TRUE) + scale_size(range=c(1,12)) +
scale_color_identity() +
labs(title= "med cluster",
x="Longitude", y= "Latitude") + coord_map()
Run Code Online (Sandbox Code Playgroud)
在此先感谢您的帮助
使用的数据:
> dput(dato)
structure(list(longitud = c(18.875, 19.125, 19.375, 18.375, 18.625,
18.875, 19.125, 19.375, 19.625, …Run Code Online (Sandbox Code Playgroud)