Pythonowski odpowiednik Matlabowego wykresu

Pythonowski odpowiednik Matlabowego wykresu
Gjorni
  • Rejestracja:około 12 lat
  • Ostatnio:około 3 lata
0

Mam sobie taki wykresik:

xxx.jpg

Wiecie może w jaki sposób mogę osiągnąć podobny efekt w Pythonie dla dwuwymiarowej macierzy? Każda z "linii" na wykresie powyżej stanowi jeden jednowymiarowy wektor. Dodam jeszcze, że przejrzałem galerię matplotlib i nie znalazłem niczego takiego.

  • xxx.jpg (40 KB) - ściągnięć: 189

The quieter you become, the more you are able to hear.
Marvinn8686
  • Rejestracja:około 12 lat
  • Ostatnio:ponad 2 lata
  • Lokalizacja:Częstochowa
2

http://matplotlib.org/examples/mplot3d/polys3d_demo.html
ten jest chyba najbliżej, tylko musiałby być bez wypełnienia, same górne krawędzie.
http://stackoverflow.com/questions/9053255/3d-plots-using-maplot3d-from-matplotlib
tutaj chyba w odpowiedzi osiągnął coś na ten kształt.

edytowany 1x, ostatnio: Marvinn8686
MarekR22
nie brak wypełnienia, ale białe wypełnienie bo na jego wykresie bliższe krzywe zasłaniają te dalsze.
Marvinn8686
Widzisz, jak się nie chce kliknąć żeby zobaczyć powiększony obrazek to się popełnia takie błędy :)
MarekR22
jaki błąd? Krzywa nr 16 pod koniec czasu ewidentnie zasłania dwie inne krzywe. No chyba, że założyć, że te 3 krzywe tak idealnie się nakładają przy tej perspektywie, ale to jest mało prawdopodobne.
Marvinn8686
No dokładnie, dlatego mówię, że nie spojrzałem na powiększenie i stąd moja pomyłka
Madaoo
  • Rejestracja:ponad 12 lat
  • Ostatnio:ponad rok
  • Postów:490
0

Tutaj galeria z przykładami wygenerowanych wykresów:
http://matplotlib.org/gallery.html


"Chodzenie po wodzie i tworzenie oprogramowania wg specyfikacji są łatwe, o ile woda i specyfikacja są zamrożone" - Edward V. Berard
Gjorni
Dodam jeszcze, że przejrzałem galerię matplotlib i nie znalazłem niczego takiego.
Gjorni
  • Rejestracja:około 12 lat
  • Ostatnio:około 3 lata
0

Znalazłem w sumie chyba rozwiązanie, tj. http://stackoverflow.com/questions/13240633/matplotlib-plot-pulse-propagation-in-3d. Zaraz siądę i spróbuję zaimplementować.

UPDATE

Gotowa i śmigająca funkcja:

Kopiuj
import numpy as np
import matplotlib.pyplot as plt

def draw3DPlot(xScale, yScale, data):
	sx = xScale.size
	sy = yScale.size

	xScale = np.tile(xScale, (sy, 1))
	yScale = np.tile(yScale, (sx, 1)).T

	fig = plt.figure()
	ax = fig.add_subplot(1, 1, 1, projection='3d')
	surf = ax.plot_wireframe(xScale, yScale, data, cstride=1000)

draw3DPlot(np.arange(10),
           np.linspace(1, 3, 3),
           np.array([
               [1, 2, 3, 4, 5, 6, 1, 2, 3, 2],
               [1, 2, 3, 4, 5, 6, 1, 2, 3, 2],
               [1, 2, 3, 4, 5, 6, 1, 2, 3, 2],
           ]))
plt.show()

rrr.png

  • rrr.png (58 KB) - ściągnięć: 169

The quieter you become, the more you are able to hear.
edytowany 1x, ostatnio: Gjorni

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.