Масштабирование проблем в сюжете, R программирование - PullRequest
0 голосов
/ 24 декабря 2018

У меня есть матрица со значениями NA на оси Y в точке «0,75», но когда я строю контурный график, пустая область графика появляется в точках «10» и «10,75»,

Я почти уверен, что это из-за моего масштабирования по моей оси (что я и сделал, используя заданное уравнение из ), но не знаю, где я ошибаюсь.Остальные пустые области на графике являются правильными и имеют значения NA.

Вот кадр данных, WW3_MF

   V1   V2   V3   V4   V5   V6   V7   V8   V9  V10
   NA -1.5 -1.0 -1.0   NA  0.5 -1.0 -1.0 -1.5 -3.0
   NA -1.5 -1.0 -0.5  0.0  1.0 -1.0 -1.0 -2.0 -4.0
   NA -1.5 -1.0 -1.0  1.0   NA  0.0 -1.0 -2.5 -4.5
   NA -1.5 -1.0 -1.0   NA  1.5   NA -1.0 -3.0 -4.5
   NA -1.0 -1.0 -0.5  1.0  1.5 -1.0 -1.0 -2.5 -4.5
   NA -1.5 -2.0 -0.5  1.0  2.0 -2.0 -1.0 -3.0 -5.0
   NA -1.5 -2.0 -0.5  0.5  1.5 -2.0 -1.5 -3.0 -4.5
   NA -1.5 -2.0 -1.0 -0.5  1.5 -2.5 -1.0 -3.0 -4.5
   NA -0.5 -1.0   NA  1.0   NA -3.5 -1.0 -3.0 -4.5
   NA -0.5 -1.5 -1.0  0.0  2.5 -3.5  0.0 -3.0 -4.5
   NA -1.0 -1.0 -0.5 -0.5  2.5   NA -0.5 -3.0 -5.5
   NA -0.5 -1.5  0.5 -1.0  3.0 -4.0  0.5 -2.5 -5.0
   NA -0.5 -1.0 -0.5 -1.5  3.0 -4.5  0.5 -2.5 -5.0
   NA -0.5 -1.5 -0.5   NA  2.5 -3.5  0.0 -2.5 -4.5
   NA  0.0 -1.0   NA -2.0  3.0 -2.5 -0.5 -2.5 -4.0
   NA  0.0 -1.0 -1.0 -1.5  3.5 -3.0  0.5 -3.0 -4.0
   NA  0.5 -0.5 -1.5   NA  2.5 -2.0  0.5 -2.5 -4.0
   NA  0.5  0.5  0.5 -1.0  2.5 -1.0  1.0 -2.0 -4.0
   NA  0.5  0.5  0.5 -1.0  3.0 -1.0  1.0 -2.0 -3.5
   NA -1.0  0.5  0.0  0.5  2.0 -0.5  0.5 -2.0 -3.5
   NA  0.5  1.0  0.5  0.5  2.0  0.5  0.5 -1.5 -3.5
   NA  0.5  0.5 -0.5  0.0  1.5  0.5  1.0 -1.5 -3.0
   NA  0.5  0.5 -0.5   NA  1.0  0.5  0.0 -1.0 -3.0
   NA  0.5  0.0 -1.5 -1.0 -0.5   NA -1.0 -2.0 -3.0
   NA  1.0  0.5 -1.0 -1.0  0.5 -0.5 -1.0 -2.0 -2.5
   NA  1.0 -0.5 -1.0 -1.0  0.0  0.5 -1.5 -1.5 -3.0
   NA  1.0  0.0 -1.0 -1.0 -1.0 -1.0 -1.5 -2.0 -3.0
   NA  1.5  1.0 -1.0 -1.0 -0.5 -1.0 -1.5 -2.0 -3.0
   NA  0.5  0.5 -1.0 -1.5 -1.0 -2.0 -2.0 -3.0 -3.5
   NA  0.5  0.5 -1.0 -1.5 -1.0 -2.0 -2.0 -3.0 -3.0
   NA  0.0 -0.5 -1.0 -2.0 -1.5 -2.5 -2.0 -3.5 -3.0
   NA -0.5 -0.5 -1.5 -2.0 -1.5 -2.5 -2.0 -4.0 -3.0
   NA -0.5 -0.5 -1.5 -2.0 -1.5 -2.5 -2.5 -4.0 -3.5
   NA -0.5 -1.0 -1.5 -2.0 -1.5 -2.5 -2.5 -4.0 -3.5
   NA  0.5 -0.5 -1.0 -1.5 -1.0 -2.0 -2.0 -4.0 -3.0
   NA  0.5 -1.0 -1.0 -1.5 -1.5 -3.0 -2.0 -5.0 -3.0
   NA  0.5  0.0 -1.0 -1.0 -1.0 -2.5 -2.0 -5.0 -3.0
   NA  0.5  0.5 -1.0 -1.5 -1.5 -3.0 -2.0 -5.0 -3.0
   NA  0.5 -0.5 -1.0 -1.0 -1.5 -3.5 -1.5 -4.5 -3.0
   NA  1.0  0.5 -1.0 -1.0 -2.5 -3.0 -2.0 -4.5 -3.5
   NA  1.5 -0.5 -1.5 -1.0 -2.0 -3.0 -1.5 -3.5 -3.5
   NA  1.5 -1.0 -1.0 -1.0 -2.0 -3.0 -1.0 -3.0 -3.5
   NA  1.0 -1.0 -1.0 -1.5 -2.5 -3.0 -1.0 -3.0 -3.0
   NA  1.5 -0.5 -1.0 -1.0 -3.0 -2.5 -1.0 -2.5 -3.0
   NA  1.0 -1.5 -1.0 -1.5 -3.0 -3.0 -1.5 -4.0 -2.5

Вот мой R -скрипт.

p <- plot_ly(z = matrix(c(WW3_MF)),  type="contour", width=500,   height=1074, colorbar = list(title = "Accumulation/Erosion (cm)"), 
         colorscale=list (c(0, "rgb(0,0,255)"),list(0.65, "rgb(135,206,250)"), list(0.75, "rgb(255,255,0)"), list(0.85, "rgb(255,165,0)"), list(1, "rgb(255,0,0)")),zauto=F, zmin=-14, zmax=8) %>%
layout(title="WW3_MF", 

yaxis=list(title="Y(m)", tickmode = "array",ticktext = c("-0.75", "-0.1", "0.1", "0.5","1.5", "2.5", "5", "7.5", "10", "10.75"),tickvals = c("1", "1.51", "1.67", "1.98","2.76", "3.54", "5.5", "7.46", "9.41", "10"),range = c(1,10)), 

xaxis=list(nticks="4",title="X(m)",tickmode = "array",ticktext = c("1", "2", "3"),tickvals = c("15", "30", "45"),range=0,45), shapes =list(type = "rect",line = list(color = "black"), x0 = "0", x1 = "22.5", xref = "x",y0 = "0.58", y1 = "8.41", yref = "y"))
(contours = list(z =list(show=TRUE, usecolormap=TRUE,highlightcolor="#ffA500",project=list,countourlabels="TRUE")))
    (scene = list(camera=list(eye = list(x=1.87, y=0.88, z=-0.64))))p

Вот contour plot.

WW3_MF, contour plot

Вот второй контурный график с диапазоном (0,9) и tickvals = c ("0", "0.509", "0.665"," 0,978 "," 1,761 "," 2,554 "," 4,5 "," 6,457 "," 8,413 "," 9 ")

enter image description here

1 Ответ

0 голосов
/ 29 декабря 2018

Я не уверен на 100%, правильно ли я понял ваш вопрос, но вот предположение.

Пробел, который вы видите в верхней части графика, исходит не от ваших NA значений, а потому, чтов вашем фрейме данных есть значения "нет".Вы указываете range для своей оси Y, которая идет от 1 до 10, но данные фактически начинаются с 0 и переходят к 9.

Если вы установите range = c(0, 9), данные должны быть правильно построены.Попробуйте изменить некоторые из NA в первой строке, и вы увидите разницу.

Кроме того, tickvals предоставляется в виде массива строк, а не чисел / чисел с плавающей запятой.Поскольку у вас нет линейной шкалы, Plotly «неправильно» интерпретирует базовые данные.Попробуйте снять галочки вокруг цифр, и цифры должны выглядеть лучше.

...