Witam,
rysuję wykres w Qt za pomocą Qcharts i QLineSeries,
problem polega na tym, że nie mogę się doszukać, w jaki sposób można w wykresie zrobić przerwę,
tzn. wartość nieokreśloną, tak, żeby wykres w tym miejscu nie rysował linii.
Chciałbym osiągnąć np. taki efekt:
A dodanie tych "samotnych" punktów jako QScatterSeries nie rozwiąże problemu?
Pokaz jak dostarczasz serię danych do wykresu.
Widzę dwie możliwości:
- dodać dwie serie danych (jedną z kropkami) drugą z krokami i liniami (ale pewnie legenda się popsuje)
- dodać do serii danych punkty bez wartości (pusty
QVariant
alboNAN
)
To wygląda obiecująco:
void QXYSeries::removePoints(int index, int count)
Owo QXYSeries
jest klasą bazową dla QLineSeries
, a po opisie w dokumentacji sądząc to pozwala usuwać poszczególne punkty z wykresu.
@MarekR22: z NAN ciekawa propozycja, niestety nie działa do końca tak jak powinna, wynik jest taki:
Tak jak widać, linia "ucieka" nieco w prawo. Użyłem propozycji z NAN wstawiając ją do testów "na sztywno" w taki sposób:
temp1->insert(2, QPoint(temp1->at(2).x()+4000, NAN));
Niestety nie wiem, jak użyć opcji z QVariant, ponieważ QLineSeries::append() nie współpracuje z tym typem.
Niestety dodawanie osobnych QScatterSeries i QLineSeries nie jest możliwe, bo takich punktów i linii będzie dużo, legenda zachowuje się przy tym dziwnie