问题
I am working the R programming language. I am trying to follow this tutorial over here: https://plotly.com/r/parallel-coordinates-plot/
I am trying to make a "parallel coordinate plot" of the famous iris data set.
Instead of loading the iris data set through the github link, I tried to use the built in iris data set that is available in R:
#load library
library(plotly)
#load data
data(iris)
df = iris
#make plot
fig <- df %>% plot_ly(type = 'parcoords', line = list(color = ~Species, colorscale = list(c(0,'red'),c(0.5,'green'),c(1,'blue'))), dimensions = list( list(range = c(2,4.5), label = 'Sepal Width', values = ~Sepal.Width), list(range = c(4,8), constraintrange = c(5,6), label = 'Sepal Length', values = ~Sepal.Length), list(range = c(0,2.5), label = 'Petal Width', values = ~Petal.Width), list(range = c(1,7), label = 'Petal Length', values = ~Petal.Length) ) )
#view plot
fig
However, this produces an incomplete plot:
Does anyone know why these two plots are different and how can I fix this? Thanks
回答1:
The data used in the tutorial has an additional column species_id
which is an integer column unique for every species. The default iris
dataset does not have that so you can convert the Species
column which is factor to integer.
library(plotly)
iris %>% plot_ly(type = 'parcoords', line = list(color = ~as.integer(Species),
colorscale = list(c(0,'red'),c(0.5,'green'),c(1,'blue'))),
dimensions = list( list(range = c(2,4.5), label = 'Sepal Width', values = ~Sepal.Width),
list(range = c(4,8), constraintrange = c(5,6), label = 'Sepal Length', values = ~Sepal.Length),
list(range = c(0,2.5), label = 'Petal Width', values = ~Petal.Width),
list(range = c(1,7), label = 'Petal Length', values = ~Petal.Length) ) )
来源:https://stackoverflow.com/questions/65821992/r-plot-not-fully-loading