Strona 1 z 1

Etykiety danych na jednej osi XY z wieloma wykresami

: ndz maja 11, 2014 10:44 am
autor: matmat100
Pracuję na Libre Office Calc (Ubuntu) i Open Office (WIndows7) i na żadnym z tych programów nie da się zmienić etykiety danych tak, by przypisać inne etykiety do każdego wykresu na wspólnej osi XY. Wszystko można zmieniać i wartości X i Y oraz Nazwę dla każdego wykresu, a Etykiety danych z automatu ustawiają się dla wszystkich wykresów.

Jak zmienić na inne etykiety danych na wspólnej osi XY dla drugiego wykresu?
Przykład problemu na obrazku. Dla wykresu z kolumny B potrzebne są etykiety danych z kolumny C, a z automatu ustawione są etykiety dla wykresu z kolumny D.

I na odwrót. Jak ustawimy etykiety z kolumny C dla wykresu z kolumny B to dla wykresu z kolumny D z automatu ustawią sie etykiety też z kolumny C, a nie z E.

Z góry dziękuję za pomoc.

Re: Etykiety danych na jednej osi XY z wieloma wykresami

: ndz maja 11, 2014 10:36 pm
autor: Jan_J
Niewygodne ...
moim zdaniem jest to pozostałość z macierzowego podejścia do danych wejściowych dla wykresu. Taką reprezentację wprowadzono w OOo 2.x. Potem ewoluowała w kierunku bardziej obiektowym.
Próba rozwiązania problemu: https://forum.openoffice.org/en/forum/v ... =9&t=12476

Re: Etykiety danych na jednej osi XY z wieloma wykresami

: pn maja 12, 2014 9:14 am
autor: matmat100
Czyli problem jest w programie, a nie w nieznajomości jego opcji?

Myślałem o zgrupowaniu kolumn, ale oś X to nie są byle liczby tylko data z czasem co do minuty. Zgrupowanie zmiesza dane i jeszcze uszłoby to w tym tłumie, gdyby nie kolejny problem, czyli wyłączenie ciągłości linii w pewnych wykresach, a która to opcja wyłącza ciągłość linii we wszystkich wykresach, a nie tylko we wskazanym. Czyli luki pomiędzy danymi z konkretnego wykresu zostałyby pozbawione linii.

Dziękuję za wyjaśnienie problemu. Będę musiał coś kombinować, być może etykiety trzeba będzie wpisać przy pomocy zrzutu ekranu i GIMPA.
Pozdrawiam.

Re: Etykiety danych na jednej osi XY z wieloma wykresami

: wt maja 13, 2014 2:23 am
autor: Raknor
Skrypty napisane w Scilabie -> http://www.scilab.org/

Opcja1:

Kod: Zaznacz cały

clear
xdel(winsid())

t=datenum(2014,2,1):1:datenum(2014,2,14)
[y,m,d]=datevec(t)
data=[string(y)+'-'+string(m)+'-'+string(d)]
wartosc1=[1:12]
etykieta1=['a' 'b' 'c' 'd' 'e' 'f' 'g' 'h' 'i' 'j' 'k' 'l']
etykieta11=[etykieta1'+' '+string(wartosc1)']
wartosc2=[5:16]
etykieta2=['xxx' 'ccc' 'vvv' 'bbb' 'hhh' 'yyy' 'uuu' 'iii' 'ooo' 'ppp' 'lll' 'kkk']
etykieta22=[etykieta2'+' '+string(wartosc2)']

scf(1); clf(1)
plot2d(wartosc1)
u1=get('current_entity');
u1.children(1).mark_style=5
u1.children(1).line_mode="off"
u1.children(1).mark_background=5
u1.children(1).mark_foreground=1
u1.children(1).mark_size=1
xstring(1:length(wartosc1),wartosc1,etykieta11)

plot2d(wartosc2)
u2=get('current_entity');
u2.children(1).mark_style=7
u2.children(1).line_mode="off"
u2.children(1).mark_background=7
u2.children(1).mark_foreground=1
u2.children(1).mark_size=2
xstring(1:length(wartosc2),wartosc2,etykieta22)
a=get('current_axes')
a.data_bounds=[0,0;14,18];
a.x_ticks = tlist(["ticks" "locations", "labels"],[1:size(data,'c')], data)

legend('wartosc1','wartosc2','out_upper_right',%f)
set(gca(),"grid",[1 1])
Opcja2:

Kod: Zaznacz cały

clear
xdel(winsid())

t=datenum(2014,2,1):1:datenum(2014,2,14)
[y,m,d]=datevec(t)
data=[string(y)+'-'+string(m)+'-'+string(d)]
wartosc1=[1:12]
etykieta1=['a' 'b' 'c' 'd' 'e' 'f' 'g' 'h' 'i' 'j' 'k' 'l']
etykieta11=[etykieta1'+' '+string(wartosc1)']
wartosc2=[5:16]
etykieta2=['xxx' 'ccc' 'vvv' 'bbb' 'hhh' 'yyy' 'uuu' 'iii' 'ooo' 'ppp' 'lll' 'kkk']
etykieta22=[etykieta2'+' '+string(wartosc2)']

scf(1); clf(1)
plot2d(wartosc1)
u1=get('current_entity');
u1.children(1).mark_style=5
u1.children(1).line_mode="off"
u1.children(1).mark_background=5
u1.children(1).mark_foreground=1
u1.children(1).mark_size=1
xstring(1:length(wartosc1),wartosc1,etykieta11)

plot2d(wartosc2)
u2=get('current_entity');
u2.children(1).mark_style=7
u2.children(1).line_mode="off"
u2.children(1).mark_background=7
u2.children(1).mark_foreground=1
u2.children(1).mark_size=2
xstring(1:length(wartosc2),wartosc2,etykieta22)
a=get('current_axes')
a.data_bounds=[0,0;14,18];
a.x_ticks = tlist(["ticks" "locations", "labels"],[1:size(data,'c')], data)

legend('wartosc1','wartosc2','out_upper_right',%f)
set(gca(),"grid",[1 1])


korekta_x=-0.5
korekta_y=-2.7
X=a.x_ticks.locations;
str=a.x_ticks.labels;
xstring(X+korekta_x, korekta_y, str, -45);
e=a.children(1); 
n_ticks=length(e.children); 
for i=1:n_ticks 
     e.children(i).clip_state="off"; 
end
a.x_ticks.labels=[''];
Opcja1: Zastępuje cyfry działek na pożądany tekst, który jest przypisany do działek. Problem w tym, że tekst nakłada się jeden na drugim. Nie znalazłem możliwości ich obrócenia. Ewentualnie jeżeli nie ma zbyt dużej ilości danych to można powiększyć okno na pełny ekran, zrobić zrzut SVG i w programie do grafiki wektorowej obrócić sobie tekst jeden za drugim.

Opcja2: Wartości działek zostają usunięte z widoku, a tekst dla działek zostaje zastąpiony polem tekstowym, lecz jest niezależny od działek i przy próbie przybliżenia jakiegoś punktu pole tekstowe wyjdzie poza pole widzenia. W zależności od tego czy chce się wykres oglądać na pełnym ekranie czy w mniejszym oknie, trzeba sobie dopasować współrzędne pól tekstowych do działek, żeby pola tekstowe odnosiły się do odpowiednich działek.

Re: Etykiety danych na jednej osi XY z wieloma wykresami

: wt maja 13, 2014 6:52 pm
autor: matmat100
Wielkie podziękowanie, ale z tym jest za dużo kombinacji. Nawet nie bardzo wiem, gdzie to wprowadzić.
Jest jeszcze inne rozwiązanie:
Stworzenie osobnej osi XiY i włączenie przeźroczystości. Jedyny problem to zabawa w nałożenie wykresów i jeszcze nie wiem jak to zostanie wydrukowane.
Ale to jest najbardziej sensowne rozwiązanie.
Dziękuję i pozdrawiam.

Re: Etykiety danych na jednej osi XY z wieloma wykresami

: wt maja 13, 2014 11:24 pm
autor: Jan_J
Jakbyś ogarnął dokładne (nie na oko) zarządzanie metryką wykresów w Calcu i ich nakładaniem, byłaby to cenna wiedza. Ale obawiam się, że nie będzie ona łatwa do zdobycia, mówiąc oględnie.
Przy zaawansowanej prezentacji danych bywa, że warto doradzić użycie innego narzędzia niż nasze "firmowe".

Re: Etykiety danych na jednej osi XY z wieloma wykresami

: pn sie 04, 2014 11:00 am
autor: cemik1
Czy w ostatnich miesiącach zmienił się stan wiedzy na temat etykietowania wykresów? Mam podobny problem. Chciałbym otrzymać wykres jak poniżej:
ex.jpg
a w Calc mogę uzyskać tylko:
calc.jpg
To są tylko przykłady. W ostatecznym kształcie (gdy będzie możliwość niezależnego nadawania dowolnych etykiet do każdej z wielu serii danych) wykresy mogą wyglądać mniej więcej tak:
bufor.jpg
Gdyby ktoś podpowiedział, jak uzyskać takie formatowanie etykiet, byłbym wdzięczny za pomoc.

Re: Etykiety danych na jednej osi XY z wieloma wykresami

: pn sie 04, 2014 1:16 pm
autor: Raknor
Format → Zakresy danych...
Wypełnij pole etykiety danych.

Wstaw → Etykiety danych...
Odznacz Pokaż wartość jako liczbę
Zaznacz Pokaż kategorię

Re: Etykiety danych na jednej osi XY z wieloma wykresami

: pn sie 04, 2014 2:00 pm
autor: cemik1
No to pierwszy etap (dodawanie etykiet) mam już za sobą. Dziękuję. Pozostał jednak problem wymieniony w pierwszym poście. Jak dodać różne etykiety do serii danych. W calc mam taki wykres:
calc1.jpg
A chciałbym otrzymać poniższy:
ex1.jpg