Czy istnieje dobre narzędzie do tworzenia wykresów / wykresów / kreślenia z wiersza poleceń w systemie UNIX? Szukam czegoś, co wykreśli punkty xy na wykresie ASCII.
Aby wyjaśnić, szukam czegoś, co wyświetli wykres w ASCII (jak w stylu ascii-art), więc mogę go używać w interaktywnej sesji powłoki bez konieczności używania X.
unix
charts
graph
matplotlib
bajafresh4life
źródło
źródło
Odpowiedzi:
Spróbuj gnuplot . Ma bardzo potężne możliwości graficzne.
Może wysyłać do twojego terminala w następujący sposób:
źródło
options are feed 79 24'
wiadomość? Czy to wysokość i szerokość? Czy możesz rozszerzyć swój przykład, aby je ustanowić?Chociaż
gnuplot
jest potężny, jest również naprawdę irytujący, gdy chcesz po prostu rzucić kilka punktów i uzyskać wykres.Na szczęście ktoś stworzył eplot (łatwy wątek), który załatwia wszystkie bzdury za Ciebie.
Wygląda na to, że nie ma opcji wymuszania wykresów terminali; Poprawiłem to tak:
Przykładowe zastosowanie:
źródło
Inną opcją, z którą właśnie się spotkałem, jest bashplotlib . Oto przykład działający na (z grubsza) tych samych danych, co mój przykład eplot :
Dostosowanie pojemników pomaga nieco rozdzielczość:
źródło
Wykresy w jednej linii są naprawdę proste i mogą pomóc dostrzec wzorce wzlotów i upadków.
Zobacz także pysparklines .
(Czy ktoś wie o ukośnych liniach Unicode, które można połączyć, aby utworzyć linię, a nie pasek, wykresy?)
źródło
feedgnuplot to kolejna nakładka na gnuplot, która obsługuje potokowanie danych.
źródło
eplot
, co sugeruje inna odpowiedź?Zobacz też: asciichart (zaimplementowane w Node.js, Python, Java, Go i Haskell)
źródło
gnuplot to ostateczna odpowiedź na twoje pytanie.
Osobiście jestem też wielkim fanem Google chart API , do którego można uzyskać dostęp z wiersza poleceń za pomocą wget (lub curl), aby pobrać plik png (i wyświetlić za pomocą xview lub czegoś podobnego). Podoba mi się ta opcja, ponieważ uważam, że wykresy są nieco ładniejsze (tj. Lepszy antyaliasing).
źródło
Powinieneś użyć gnuplot i po uruchomieniu wydać polecenie „set term dumb”. Możesz również podać liczbę wierszy i kolumn. Oto wynik polecenia gnuplot, jeśli wydasz „set term dumb 64 10”, a następnie „plot sin (x)”:
Wygląda lepiej przy 79x24 (nie używaj 80-tej kolumny na ekranie 80x24: niektóre implementacje curses nie zawsze zachowują się dobrze w pobliżu ostatniej kolumny).
Używam gnuplot v4, ale powinno to działać na nieco starszych lub nowszych wersjach.
źródło
Inną prostszą / lżejszą alternatywą dla gnuplot jest ervy , oparte na NodeJS narzędzie do tworzenia wykresów terminali.
Obsługiwane typy: scatter (punkty XY), bar, pie, bullet, donut i gauge.
Przykłady użycia z różnymi opcjami można znaleźć w repozytorium projektów GitHub
źródło
Sprawdź pakiet plotext, który umożliwia wykreślanie danych bezpośrednio na terminalu za pomocą python3. Jest bardzo intuicyjny, ponieważ jego obsługa jest bardzo podobna do pakietu matplotlib .
Oto podstawowy przykład:
Możesz go zainstalować za pomocą następującego polecenia:
Jeśli chodzi o matplotlib, głównymi funkcjami są rozpraszanie (dla pojedynczych punktów), plot (dla punktów połączonych liniami) i show (aby faktycznie wydrukować wykres na terminalu). Łatwo jest określić wymiary wykresu, style punktów i linii oraz cokolwiek innego, aby pokazać osie, znaczniki liczbowe i końcowe równania, które są używane do konwersji wykreślonych współrzędnych na oryginalne wartości rzeczywiste.
Oto kod do utworzenia wykresu pokazanego powyżej:
Opcja
clear=True
wewnątrzshow
służy do wyczyszczenia terminala przed wydrukowaniem: jest to przydatne na przykład podczas kreślenia ciągłego przepływu danych. Oto przykład kreślenia ciągłego przepływu danych:Opis Pakiet zawiera więcej informacji, jak dostosować fabuły. Pakiet został przetestowany na Ubuntu 16, gdzie działa doskonale. Możliwe przyszłe zmiany (na żądanie) mogą obejmować rozszerzenie do python2 i innych interfejsów graficznych (np. Jupiter). Daj mi znać, jeśli masz jakiekolwiek problemy z jego używaniem. Dzięki.
Mam nadzieję, że to odpowiada na twój problem.
źródło
Ponadto iskra jest ładnym małym wykresem słupkowym w twojej powłoce.
źródło
Oto moja łatka dla eplot, która dodaje opcję -T do wyjścia terminala:
Używając tego możesz uruchomić go jako
eplot -T
wynik ASCII-graphics zamiast okna gnuplot.źródło
-d