library(ggplot2)
library(plotly)
## Warning: package 'plotly' was built under R version 4.2.3
##
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
##
## last_plot
## The following object is masked from 'package:stats':
##
## filter
## The following object is masked from 'package:graphics':
##
## layout
library(ggforce)
library(remotes)
## Warning: package 'remotes' was built under R version 4.2.3
library(graphics)
library(ggmosaic)
## Warning: package 'ggmosaic' was built under R version 4.2.3
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
p<- plot_ly(diamonds, y = ~price, color = I("black"), alpha = 0.1,boxpoints = "supectedoutliers")
p1<- p%>% add_boxplot(x="overall")
p2<-p %>% add_boxplot( x = ~cut)
subplot(p1, p2, shareY = TRUE, widths = c(0.2, 0.8), margin = 0
)
###Se presentan varios diagrmas de caja y estencion, uno para cada varible estudiada relacionada, las cuales eran overall, fair, good, very good, premium, ideal con los diamantes en el eje x. Se encuentran la relacion del precio( eje y) y la calidad del mismo(eje x).
plot_ly(diamonds, x= ~price, y = ~interaction(clarity, cut)) %>% add_boxplot(color = ~clarity) %>%
layout( yaxis = list( title= ""))
# También es útil clasificar los diagrams de caja y extencion congruente con un aspecto significativo, como el precio promedio. La figura muestra los mismos datos que los diagramas de caja y extensión anteriormente presentados. Sin embargo este nuevo grafico organiza los datos presentes de los diagramas de caja por la mediana e inmediatamente se puede observar que los diamantes de corte "S12" tienen el precio de diamante más alto del mercado estudiado.
d <- diamonds %>%
mutate(cc = interaction(clarity, cut))
# interaction levels sorted by median price
lvls <- d %>%
group_by(cc) %>%
summarise(m = median(price)) %>%
arrange(m) %>%
pull(cc)
plot_ly(d, x = ~price, y = ~factor(cc, lvls)) %>%
add_boxplot(color = ~clarity) %>%
layout(yaxis = list(title = ""))
# Este error se presenta por la version de R que estamos manejando, segun una de las respuestas encontradas en Overstall. You should update your dplyr-version to 0.7.0 which includes the pull function. It seems that bupaR does not specifically states this dependency. Probablemente esta sea la explicacion al error, porque ya se utilizaron las otras posibles soluciones al error y el eror se mantuvo.
p<- plot_ly(diamonds, x= ~log(carat), y = ~log(price))
subplot( add_histogram2d(p) %>%
colorbar(titl = "default") %>%
layout( xaxis = list(title = " default")),
add_histogram2d(p, zsmooth = "best") %>%
colorbar(title = "zsmooth")%>%
layout( xaxis = list(title= " zsmooth")),
add_histogram2d(p, nbinsk = 60, nbinsy = 60) %>%
colorbar(title = "nbins")%>%
layout(xaxis = list(tirle = "nbins")),
shareY = TRUE, titleX = TRUE)
## Warning: 'histogram2d' objects don't have these attributes: 'nbinsk'
## Valid attributes include:
## 'autobinx', 'autobiny', 'autocolorscale', 'bingroup', 'coloraxis', 'colorbar', 'colorscale', 'customdata', 'customdatasrc', 'histfunc', 'histnorm', 'hoverinfo', 'hoverinfosrc', 'hoverlabel', 'hovertemplate', 'hovertemplatesrc', 'ids', 'idssrc', 'legendgroup', 'legendgrouptitle', 'legendrank', 'marker', 'meta', 'metasrc', 'name', 'nbinsx', 'nbinsy', 'opacity', 'reversescale', 'showlegend', 'showscale', 'stream', 'textfont', 'texttemplate', 'transforms', 'type', 'uid', 'uirevision', 'visible', 'x', 'xaxis', 'xbingroup', 'xbins', 'xcalendar', 'xgap', 'xhoverformat', 'xsrc', 'y', 'yaxis', 'ybingroup', 'ybins', 'ycalendar', 'ygap', 'yhoverformat', 'ysrc', 'z', 'zauto', 'zhoverformat', 'zmax', 'zmid', 'zmin', 'zsmooth', 'zsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
## Warning: 'histogram2d' objects don't have these attributes: 'nbinsk'
## Valid attributes include:
## 'autobinx', 'autobiny', 'autocolorscale', 'bingroup', 'coloraxis', 'colorbar', 'colorscale', 'customdata', 'customdatasrc', 'histfunc', 'histnorm', 'hoverinfo', 'hoverinfosrc', 'hoverlabel', 'hovertemplate', 'hovertemplatesrc', 'ids', 'idssrc', 'legendgroup', 'legendgrouptitle', 'legendrank', 'marker', 'meta', 'metasrc', 'name', 'nbinsx', 'nbinsy', 'opacity', 'reversescale', 'showlegend', 'showscale', 'stream', 'textfont', 'texttemplate', 'transforms', 'type', 'uid', 'uirevision', 'visible', 'x', 'xaxis', 'xbingroup', 'xbins', 'xcalendar', 'xgap', 'xhoverformat', 'xsrc', 'y', 'yaxis', 'ybingroup', 'ybins', 'ycalendar', 'ygap', 'yhoverformat', 'ysrc', 'z', 'zauto', 'zhoverformat', 'zmax', 'zmid', 'zmin', 'zsmooth', 'zsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
## Warning: 'histogram2d' objects don't have these attributes: 'nbinsk'
## Valid attributes include:
## 'autobinx', 'autobiny', 'autocolorscale', 'bingroup', 'coloraxis', 'colorbar', 'colorscale', 'customdata', 'customdatasrc', 'histfunc', 'histnorm', 'hoverinfo', 'hoverinfosrc', 'hoverlabel', 'hovertemplate', 'hovertemplatesrc', 'ids', 'idssrc', 'legendgroup', 'legendgrouptitle', 'legendrank', 'marker', 'meta', 'metasrc', 'name', 'nbinsx', 'nbinsy', 'opacity', 'reversescale', 'showlegend', 'showscale', 'stream', 'textfont', 'texttemplate', 'transforms', 'type', 'uid', 'uirevision', 'visible', 'x', 'xaxis', 'xbingroup', 'xbins', 'xcalendar', 'xgap', 'xhoverformat', 'xsrc', 'y', 'yaxis', 'ybingroup', 'ybins', 'ycalendar', 'ygap', 'yhoverformat', 'ysrc', 'z', 'zauto', 'zhoverformat', 'zmax', 'zmid', 'zmin', 'zsmooth', 'zsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
# Observamos tres graficos similares en este chunk. Estos comparten el mismo eje y ( precio de los diamantes), y difieren en el eje x, como default, zsmooth y rbins.En estos tres graficos se realizan una interpolacion bilineal, un tipo de comparacionde datos cercanos entre si. Tambien tenemos la relacion colo-cantidad en cada uno de los ejes x. Entre mas calido sea el color, mayor cantidad de datos cercanos.
Kde_count <- function(x, y, ...){
Kde <- MASS::kde2d(x, y, ...)
df<- with(Kde, setNames(expand.grid(x, y), c("x","y")))
df$count <- with(Kde, c(z) * length(x)* diff(x)[1] * diff(y)[1])
data.frame(df)
}
Kd <- with(diamonds, Kde_count(log(carat), log(price), n = 30))
plot_ly(Kd, x = ~x, y = ~y, z = ~count) %>%
add_heatmap()%>%
colorbar(title = "Numer of diamonds")
# En este grafico podemos ver una estimacion de la densidad de los datos. Los colores calidos(amarillos)son los mas densos, y los colores frios(azules) representan una menor dendisidad de datos.En la grafica observamos dos coordenadas que tienen la mayor densidad y por ende cantidad de datos. Estas coordenadas son -1.3,6.7 aproximadamente y 0.2,8.4 aproximadamente.
corr<- cor(dplyr::select_if(diamonds, is.numeric))
plot_ly(colors = "RdBu") %>%
add_heatmap(x = rownames(corr), y = colnames(corr), z= corr) %>%
colorbar(limits = c(-1, 1))
# En el ultimo grafico de la seccion 7 se pueden observar.Las tablas condicionales de doble entrada son fáciles de ver en este diagrama. También podemos ver que esto es muy práctico para ejes categóricos, ya que nos permite mostrar cualquier tamaño (en este caso, color) en el eje z.