It seems like there is an issue in data interpreting by plotly library for R.
plotly: 4.10.4
ggplot2: 3.5.1
r: 4.4.0 Patched (2024-05-12 r86534 ucrt)
RStudio: 2024.04.2 Build 764
i tried 3 different ways to produce plotly chart and all of them give the same result:
- create a geom_bin2d and then converting it to plotly via ggplotly()
- precalculate the bins, create the geom_tile() and then convert it via ggplotly()
- use plot_ly directly.
thinking that automatic aggregation of data could have peculiarities so plotly interprets that in a special way I ended up in pre-calculating the aggregated data and got the same result.
here is the data that i summarized:
"categories","bin","count"
-1,70.8333333333333,116247
-1,141.666666666667,56
-1,212.5,167
-1,283.333333333333,5074
-1,354.166666666667,1983
-1,425,326
-1,495.833333333333,739
-1,566.666666666667,1517
-1,637.5,338
-1,708.333333333333,112
-1,779.166666666667,63
-1,850,57
-1,920.833333333333,24
-1,991.666666666667,9
-1,1062.5,4
-1,1133.33333333333,1
0,70.8333333333333,12
1,70.8333333333333,434034
1,141.666666666667,156
1,212.5,84
1,283.333333333333,11
1,354.166666666667,1
1,2195.83333333333,1
2,70.8333333333333,156442
2,141.666666666667,58
2,212.5,31
2,283.333333333333,3
2,354.166666666667,1
2,425,1
3,70.8333333333333,30802
3,141.666666666667,14
3,212.5,8
4,70.8333333333333,11199
4,141.666666666667,6
4,212.5,3
5,70.8333333333333,391
5,495.833333333333,1
6,70.8333333333333,60
7,70.8333333333333,24
8,70.8333333333333,2
here is my code:
ggplot_tile <- ggplot(binned_df, aes(x = categories, y = bin, fill = count)) +
geom_tile()
plotly_tile <- ggplotly(plot_tile)
plotly_tile
here is what i get: ggplot_tile is on the left, plotly_tile is on the right
direct feeding data to plot_ly gives the same result:
fig <- plot_ly(
data = binned_df,
x = ~categories,
y = ~bin,
z = ~count,
type = "heatmap",
colors = viridis::viridis(256)
)