Tworzenie listy współrzędnych (x, y) w Pythonie matplotlib
Mam listę par (a, b)
, które chciałbym narysować matplotlib
w Pythonie jako rzeczywiste współrzędne x-y. Obecnie tworzy dwa wykresy, gdzie indeks listy podaje współrzędną x, a wartości y pierwszego Wykresu to a
S w parach, a wartości Y drugiego Wykresu to b
s w parach.
Dla wyjaśnienia, moje dane wyglądają tak: li = [(a,b), (c,d), ... , (t, u)]
Chcę zrobić jednolinijkowy, który nazywa plt.plot()
niepoprawnym.
Gdybym nie wymagał jednośladu mógłbym trywialnie zrobić:
xs = [x[0] for x in li]
ys = [x[1] for x in li]
plt.plot(xs, ys)
- Jak mogę zmusić matplotlib do wykreślenia tych par jako współrzędnych x-y?
Dzięki za pomoc!
3 answers
Zgodnie z Ten przykład :
import numpy as np
import matplotlib.pyplot as plt
N = 50
x = np.random.rand(N)
y = np.random.rand(N)
plt.scatter(x, y)
plt.show()
Wyprodukuje:
Aby rozpakować dane z par na listy użyj zip
:
x, y = zip(*li)
Więc jednolinijkowy:
plt.scatter(*zip(*li))
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-03 03:49:06
Jeśli masz tablicę numpy możesz to zrobić:
import numpy as np
from matplotlib import pyplot as plt
data = np.array([
[1, 2],
[2, 3],
[3, 6],
])
x, y = data.T
plt.scatter(x,y)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-15 08:33:27
Jeśli chcesz narysować pojedynczą linię łączącą wszystkie punkty na liście
plt . plot ( li [ : ] )
plt . show ( )
To wykreśli linię łączącą wszystkie pary na liście jako punkty na płaszczyźnie kartezjańskiej od początku listy do końca. Mam nadzieję, że tego właśnie chciałaś.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-10 18:01:04