Mam wykres, który ma znaczniki czasu na osi X i niektóre dane sygnałowe na osi Y. Jako dokumentację chcę umieścić znaczniki czasowe w odniesieniu do konkretnych punktów na działce. Czy możliwe jest narysowanie linii na wykresie do obrazu w sekwencji zdjęć poniżej wykresu?Połączyć obraz i działkę z Pythonem Matplotlibem
14
A
Odpowiedz
16
This pokaz z galerii matplotlib pokazuje, jak wstawiać zdjęcia, rysować linie do nich itp. Publikuję zdjęcie z galerii, a następnie możesz zobaczyć kod link.
A oto kod (od wersji 2.1.2):
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.patches import Circle
from matplotlib.offsetbox import (TextArea, DrawingArea, OffsetImage,
AnnotationBbox)
from matplotlib.cbook import get_sample_data
if 1:
fig, ax = plt.subplots()
# Define a 1st position to annotate (display it with a marker)
xy = (0.5, 0.7)
ax.plot(xy[0], xy[1], ".r")
# Annotate the 1st position with a text box ('Test 1')
offsetbox = TextArea("Test 1", minimumdescent=False)
ab = AnnotationBbox(offsetbox, xy,
xybox=(-20, 40),
xycoords='data',
boxcoords="offset points",
arrowprops=dict(arrowstyle="->"))
ax.add_artist(ab)
# Annotate the 1st position with another text box ('Test')
offsetbox = TextArea("Test", minimumdescent=False)
ab = AnnotationBbox(offsetbox, xy,
xybox=(1.02, xy[1]),
xycoords='data',
boxcoords=("axes fraction", "data"),
box_alignment=(0., 0.5),
arrowprops=dict(arrowstyle="->"))
ax.add_artist(ab)
# Define a 2nd position to annotate (don't display with a marker this time)
xy = [0.3, 0.55]
# Annotate the 2nd position with a circle patch
da = DrawingArea(20, 20, 0, 0)
p = Circle((10, 10), 10)
da.add_artist(p)
ab = AnnotationBbox(da, xy,
xybox=(1.02, xy[1]),
xycoords='data',
boxcoords=("axes fraction", "data"),
box_alignment=(0., 0.5),
arrowprops=dict(arrowstyle="->"))
ax.add_artist(ab)
# Annotate the 2nd position with an image (a generated array of pixels)
arr = np.arange(100).reshape((10, 10))
im = OffsetImage(arr, zoom=2)
im.image.axes = ax
ab = AnnotationBbox(im, xy,
xybox=(-50., 50.),
xycoords='data',
boxcoords="offset points",
pad=0.3,
arrowprops=dict(arrowstyle="->"))
ax.add_artist(ab)
# Annotate the 2nd position with another image (a Grace Hopper portrait)
fn = get_sample_data("grace_hopper.png", asfileobj=False)
arr_img = plt.imread(fn, format='png')
imagebox = OffsetImage(arr_img, zoom=0.2)
imagebox.image.axes = ax
ab = AnnotationBbox(imagebox, xy,
xybox=(120., -80.),
xycoords='data',
boxcoords="offset points",
pad=0.5,
arrowprops=dict(
arrowstyle="->",
connectionstyle="angle,angleA=0,angleB=90,rad=3")
)
ax.add_artist(ab)
# Fix the display limits to see everything
ax.set_xlim(0, 1)
ax.set_ylim(0, 1)
plt.show()
14
Jeśli dobrze rozumiem pytanie, to może to może pomóc:
import scipy
import pylab
fig = pylab.figure()
axplot = fig.add_axes([0.07,0.25,0.90,0.70])
axplot.plot(scipy.randn(100))
numicons = 8
for k in range(numicons):
axicon = fig.add_axes([0.07+0.11*k,0.05,0.1,0.1])
axicon.imshow(scipy.rand(4,4),interpolation='nearest')
axicon.set_xticks([])
axicon.set_yticks([])
fig.show()
fig.savefig('iconsbelow.png')
+0
Kiedy czarna ramka wokół zdjęcia są niepożądane, że 'axicon.set_xticks ([])' i 'axicon.set_yticks ([])' polecenia może być zastąpione przez 'axicon.axis ('off')'. –
Powiązane problemy
- 1. Tworzenie wykresu równania z matplotlibem
- 2. Django zapisać obraz z URL i połączyć z ImageField
- 3. Jak animować działkę rozproszoną?
- 4. Czas wydruku w języku Python z Matplotlibem
- 5. Wykreślanie gęstości prawdopodobieństwa przez próbkę z matplotlibem
- 6. Jak zapisać fabułę w Seaborn z Pythonem
- 7. wizualizacja dużego wykresu z pythonem i networkxem
- 8. opisywanie działkę przy użyciu matplotlib
- 9. Crunching xml z pythonem
- 10. Przechowywanie haseł z pythonem
- 11. znakowania działkę w przyrostach pi
- 12. JIRA z Pythonem
- 13. Komunikacja między Pythonem i Matlabem
- 14. IPC między Pythonem i C#
- 15. jak radzić sobie z asymptotą/nieciągłością z Matplotlibem
- 16. Jak obrócić jedną działkę z wielu podczas korzystania z knitr?
- 17. Jak połączyć do.call() plot() i expression()
- 18. Użyj RPi.GPIO z Pythonem 3.6
- 19. Łatwe kodowanie JSON z Pythonem
- 20. Wykreślanie znaczników czasu (godzina/minuta/sekunda) z Matplotlibem
- 21. Generowanie instrukcji SQL z pythonem
- 22. Dosłowne nawiasy z pythonem regex
- 23. Problem nakładki ikon z Pythonem
- 24. Tworzenie instagramowego bota z pythonem?
- 25. Znajdź poniedziałkową randkę z pythonem
- 26. Importowanie numpy z pythonem 2.6
- 27. Używanie pySerial z Pythonem 3.3
- 28. regresji liniowej z Pythonem NumPy
- 29. Wywoływanie skryptu PowerShell z Pythonem
- 30. jak używać związków z pythonem?
Does ktoś wie, czy to działa w 3D? czy możemy dodać zdjęcie do samolotu? – CromeX
@CromeX: proszę zadać osobne pytanie. – tom10
linki nie wydają się już działać. –