• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Skrypt BASH do generowania pliku svg z wykresem słupkowym

+3 głosów
160 wizyt
pytanie zadane 14 września 2016 w Nasze projekty przez obl Nałogowiec (26,240 p.)
edycja 14 września 2016 przez obl

Napisałem jakiś czas temu skrypt w BASH-u do tworzenia pliku svg (grafika wektorowa) z wykresem stworzonym na podstawie podanych przez użytkownika danych. Skrypt na mojej stronie tutaj na końcu strony można pobrać. Przykładowe uruchomienie skryptu:

sh svgDiag.sh "3 15 34 56 38 10 11 0 5 19 6 5 20 33 44 5 6 7 8" "Wykres przykładowy działania skryptu BASH"

Edit.

Poprawiłem trochę skrypt - teraz zapisuje do html-a w lżejszej formie. W Inkscapie się nie otworzy, ale da się to zmienić, wystarczy usunąć cały nagłówek dla html-a i body na końcu no i wstawić na początku to:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>

I zapisać. Musiałem tak zrobić, bo mi znaków polskich nie wyświetlał poprawnie jak w svg zapisywałem.

 

2 odpowiedzi

+1 głos
odpowiedź 14 września 2016 przez Comandeer Mentor (364,900 p.)
Aż się prosi wrzucić to na GitHuba ;)

Wypluwa to strasznie zanieczyszczony SVG. Te wszystkie metadata od Inkscape'a można z powodzeniem usunąć.

Fajnym pomysłem na rozwój może być możliwość podania skryptowi pliku JSON z danymi, z których wygeneruje taki wykres. Wówczas bym z powodzeniem używał ;)

BTW mam nadzieję, że się nie obrazisz jeśli wykorzystam Twój kod do stworzenia wersji JS tego?
komentarz 14 września 2016 przez obl Nałogowiec (26,240 p.)
A niby dlaczego miałbym się obrazić? Po to to zrobiłem, żeby każdy mógł korzystać. Co do tego zarzutu o strasznie zanieczyszczony kod to masz rację, miałem trochę problemów żeby to otwierało się w Inkscap-ie więc wrzuciłem "roboczo" wszystko co jest gdy Inkscap-e tworzy plik. Za jakiś czas to dopracuję trochę.
komentarz 14 września 2016 przez Benek Nałogowiec (34,660 p.)
Commander, generowałeś na nowo plik, czy otworzyłeś ten, który jest w paczce? Mnie się otwiera ten z paczki, natomiast generuje się błędy plik. Z tego co widzę, to chodzi o znaki nowej linii.
komentarz 14 września 2016 przez Comandeer Mentor (364,900 p.)
@Benek nie otwierdałem w Inkscape. Otwierałem w Chrome.
komentarz 14 września 2016 przez obl Nałogowiec (26,240 p.)

@Comandeer źle cię zrozumiałem, jak chcesz przerabiać na JS to przerabiaj. Ja też pewnie za jakiś czas przerobię. A mam jeszcze nieco lepszą wersję php tego wykresu ale generującą plik png. Jak chcesz to możesz zerknąć tutaj z pewnością byś to lepiej zrobił, ale mam nadzieję, że mój kod nie jest zbyt tragiczny:).

+1 głos
odpowiedź 14 września 2016 przez Benek Nałogowiec (34,660 p.)

OK, w skrypcie jest błąd, mianowicie używasz znaków nowej linii \n w instrukcji echo. W takim wypadku musisz dodać opcję -e, by białe znaki były poprawnie przetwarzane przez tę instrukcję. Najłatwiej będzie w terminalu Linuxa przepuścić cały skrypt przez seda (sprawdzałem, działa):

sed -e "s,echo,echo -e,g" svgDiag.sh > tmp
mv tmp svgDiag.sh

 

Podobne pytania

+3 głosów
3 odpowiedzi 161 wizyt
pytanie zadane 16 września 2016 w Nasze projekty przez obl Nałogowiec (26,240 p.)
0 głosów
0 odpowiedzi 50 wizyt
pytanie zadane 1 czerwca w Systemy operacyjne, programy przez smyko_k Nowicjusz (140 p.)
0 głosów
0 odpowiedzi 45 wizyt
pytanie zadane 16 października 2016 w Nasze projekty przez obl Nałogowiec (26,240 p.)
Obowiązuje już zaktualizowany regulamin.

Czy wiesz, że nie musisz już odświeżać strony głównej?

Lista pytań i odpowiedzi aktualizuje się automatycznie!

38,636 zapytań

76,523 odpowiedzi

149,476 komentarzy

18,086 pasjonatów

Przeglądających: 200
Pasjonatów: 13 Gości: 187

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...