Добавьте одну точку на линейную диаграмму rChart с углублениями

Я хочу добавить одну точку на линейную диаграмму с ямочками и использовал это.

vo <- (round(seq(0.5,0.6,0.001),5))
sh <- (1-((vo)^(1/3)))
sh <- 100*sh
dat <- data.frame(cbind(vo,sh))
ph <- data.frame(vo=0.55, sh=16)

d1 <- dPlot(sh~vo,
            data = dat,
            type = "line"
            ,defaultColors = "#!['blue']!#"
)
d1$yAxis('addMeasureAxis')
d1$layer(
  sh ~ vo
  ,groups = c("vo","sh")
  ,data = ph
  ,type="bubble"
)

Как новичок, я играл со всеми возможными решениями, которые мог найти, но в итоге - в лучшем случае - так, как показано выше. Пункт, который я хочу добавить, просто не там, где я ожидаю, что он будет. Вместо того, чтобы появиться в определенной позиции, он перемещается вверх по оси Y. Что я делаю не так?

Благодаря timeportfolio я получил хорошее решение. и с небольшой дополнительной помощью от него из других постов я смог отформатировать xAxis больше, чем я ожидал. Но теперь появляются другие проблемы, я не смог найти ответ на: 1. xAxis почему-то кажется подавленным, хотя масштаб виден 2. При изменении overrideMin, скажем, на 15, пунктирная линия всплывающей подсказки выходит за пределы ось х. Можно ли это изменить?

d1$setTemplate(afterScript = 
  "<script>
    myChart.axes[0].shapes.selectAll('text')
        .each(function(d,i){
            // remove incrementally, so something like every 5
            if( i % 20 == 0 ) {
              //remove transform - translate and rotate
              // do other styling and manipulation here also
              d3.select(this).style('transform','')
            } else {
              d3.select(this).remove()
            }
            })
        .attr('transform','rotate()')
        .style('text-anchor','middle')
        .style('font-size','50%')
    myChart.axes[0]
          .titleShape.text('Vol')
          .style('font-size','100%')
  </script>"
)
d1

Я вставил только afterScript, используя приведенный выше код и изменив overrideMin, должно быть ясно, что я имею в виду. Спасибо за любую помощь.


person MarBlo    schedule 30.11.2014    source источник


Ответы (1)


Вы хорошо поступили, учитывая, что эта функциональность является экспериментальной и недокументированной. На данный момент, чтобы заставить это работать, вам нужно явно установить максимум и минимум в yAxis в двух местах, чтобы получить правильное выравнивание (да, я знаю, что это уродливо). Полный код будет примерно таким

library(rCharts)

vo <- (round(seq(0.5,0.6,0.001),5))
sh <- (1-((vo)^(1/3)))
sh <- 100*sh
dat <- data.frame(cbind(vo,sh))
ph <- data.frame(vo=0.55, sh=16)

d1 <- dPlot(sh~vo,
            data = dat,
            type = "line"
            ,defaultColors = "#!['blue']!#"
)
d1$yAxis('addMeasureAxis',overrideMin = 0, overrideMax = 30)
d1$layer(
  sh ~ vo
  ,groups = c("vo","sh")
  ,data = ph
  ,type="bubble"
  ,yAxis = d1$params$yAxis
)
d1

Пожалуйста, дайте мне знать, если это работает для вас. Извините, что все еще так неуклюже.

person timelyportfolio    schedule 05.12.2014
comment
см. здесь дополнительные тесты/примеры github.com/timelyportfolio/rCharts_dimple/ blob/gh-страницы/ - person timelyportfolio; 05.12.2014
comment
Большое спасибо, это здорово. Работает, правда я не совсем понимаю хотя предыстория этого, я доволен. - person MarBlo; 06.12.2014