Qt- Przerwa w wykresie

Qt- Przerwa w wykresie
Karol Szustakowski
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 10
0

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:
title

tajny_agent
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1340
0

A dodanie tych "samotnych" punktów jako QScatterSeries nie rozwiąże problemu?

MarekR22
  • Rejestracja: dni
  • Ostatnio: dni
0

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 albo NAN)
MasterBLB
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa
  • Postów: 1454
0

To wygląda obiecująco:

Kopiuj
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.

Karol Szustakowski
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 10
0

@MarekR22: z NAN ciekawa propozycja, niestety nie działa do końca tak jak powinna, wynik jest taki:
title
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:

Kopiuj
    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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.