Qt- Przerwa w wykresie

Odpowiedz Nowy wątek
2019-06-11 11:19
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

edytowany 1x, ostatnio: Karol Szustakowski, 2019-06-11 11:46
My też się nie możemy doszukać :( Pokaż kod - kameleo327 2019-06-11 11:21
@kameleo327: kodu nie ma, bo właśnie o to chodzi, że nie wiem jak to zaimplementować. Można dodać normalny punkt do wykresu metodą append, ale jak zrobić w nim przerwę? - Karol Szustakowski 2019-06-11 11:45

Pozostało 580 znaków

2019-06-11 12:06
0

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

Pozostało 580 znaków

2019-06-11 12:27
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)

Jeśli chcesz pomocy, NIE pisz na priva, ale zadaj dobre pytanie na forum.
edytowany 1x, ostatnio: MarekR22, 2019-06-11 12:27

Pozostało 580 znaków

2019-06-11 13:13
0

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.


"Sugeruję wyobrazić sobie Słońce widziane z orbity Merkurego, a następnie dupę tej wielkości. W takiej właśnie dupie specjalista ma teksty o wspaniałej atmosferze, pracy pełnej wyzwań i tworzeniu innowacyjnych rozwiązań. Pracuje się po to, żeby zarabiać, a z resztą specjalista sobie poradzi we własnym zakresie, nawet jeśli firma mieści się w okopie na granicy obu Korei."
-somekind,
konkretny człowiek-konkretny przekaz :]
edytowany 1x, ostatnio: MasterBLB, 2019-06-11 13:16

Pozostało 580 znaków

2019-06-12 08:27
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:

    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

daj NAN dla x i y - MarekR22 2019-06-12 09:30
@MarekR22: dałem w takim sposób: temp1->insert(2, QPointF(NAN, NAN)); I niestety efekt taki, że rysuje te kreski połączone, tak jakbym tam żadnej wartości nie wstawił. Dodatkowo, w konsoli wypisuje: Ignored NaN, Inf, or -Inf value. - Karol Szustakowski 2019-06-12 13:26
no to trudno, wygląda na to, że ten feature nie jest wspierany. - MarekR22 2019-06-12 13:28

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0