2013-02-28 12 views
5

W wykresach, chcę wykreślić wykres rozproszenia/bąbelkowy, w którym wartości x mieszczą się w zakresie od -50 do +50, a wartości y od -100 do +100. Czy istnieje sposób, aby wykreślić oś X i Y tak, aby przekroczyły zero na środku wykresu?Highcharts: Oś X i Y krzyżują się na zero na wykresie rozproszenia

Próbowałem już użyć parametru "offset" w osi, która przesuwa oś, np. http://bit.ly/Xd9Z51 ale takie podejście ma następujące problemy:

  1. Nie można ustawić offset parametr dynamicznie, więc jeśli aktualizacjach serii i zmienia/MAX wartości X/y min, oś nie przejechać na zero.
  2. Po powiększeniu oś nie przechodzi już przez zero.
  3. Ciężko jest obliczyć przesunięcia w pikselach, biorąc pod uwagę rozmiar div, marginesy, tytuły itp.
  4. Zmiana rozmiaru elementu zawierającego powoduje zmianę wymaganych pozycji przesunięcia osi.

Odpowiedz

2

W tej chwili jedynym rozwiązaniem jest użycie parametru przesunięcia. Jednak ponieważ Highcharts 3.0 można sterować dowolnie tej osi własności i aktualizacji:

chart.yAxis[index].update(options); 

Gdzie jest przedmiotem opcji z opcjami yAxis oraz offset. Aby uzyskać pozycję piksela, możesz użyć wewnętrznej funkcji chart.xAxis[index].translate(value) (trochę hacky, ale działa). Jeśli oba zostaną połączone, zobacz przykład: http://jsfiddle.net/UGpPV/6/

+0

Dziękuję bardzo za tę odpowiedź. Dokładnie to, co chciałem wiedzieć. Czy masz datę premiery Highcharts 3.0? – SteveP

+0

Czy istnieje sposób, w jaki mogę użyć "transformacji", aby przesunąć oś? – SteveP

+0

To zależy od tego, ile błędów znajdziemy w wersji beta. Zakładamy, że wydamy Highcharts 3.0 w marcu, zobacz: http://www.highcharts.com/support/roadmap –

Powiązane problemy