Ho un grafico che ha la data/ora sull'asse xe alcuni dati del segnale sull'asse y. Come documentazione voglio inserire immagini temporizzate in relazione a punti specifici della trama. È possibile tracciare una linea in una trama per un'immagine in una sequenza di immagini sotto la trama?Combina immagine e plottaggio con Python Matplotlib
14
A
risposta
16
This demo dalla galleria matplotlib mostra come inserire immagini, disegnare linee a loro, ecc. Posterò l'immagine dalla galleria, e puoi seguire il codice link per vedere il codice.
Ed ecco il codice (dalla versione 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
Se ho capito bene la domanda, allora forse questo può aiutare:
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
Quando i bordi neri attorno alle immagini non sono desiderabili, i comandi 'axicon.set_xticks ([])' e 'axicon.set_yticks ([])' può essere sostituito da 'axicon.axis ('off')'. –
Problemi correlati
- 1. Tempo di plottaggio in Python con Matplotlib
- 2. plottaggio poligoni 3D in python-matplotlib
- 3. python matplotlib Agg rispetto al plottaggio interattivo e tight_layout
- 4. Artefatti nel plottaggio della tessitura matplotlib
- 5. plottaggio campi vettoriali in pitone (matplotlib)
- 6. plottaggio di poligoni riempiti in python
- 7. Combina diverse immagini in orizzontale con Python
- 8. Nuovo in Python ... Python 3 e Matplotlib
- 9. Combina stessa funzione con diversi parametri - Python
- 10. Combina reprlib e pprint in Python?
- 11. Python 2.7 Combina abc.abstractmethod e classmethod
- 12. combina immagine e sfondo solidcolor per un modulo WPF
- 13. CSS: Combina texture e colori
- 14. Python e Matplotlib e annotazioni con passaggio del mouse
- 15. Inserisci immagine nella legenda matplotlib
- 16. Funzione di densità di probabilità di plottaggio per campione con matplotlib
- 17. Plottaggio di un grafico x-y con assi "quattro"
- 18. Matplotlib per Python 3 e Linux
- 19. Colore afferma con Python matplotlib/basemap
- 20. Utilizzo di python e matplotlib su Android
- 21. Visualizza immagine numpy/opencv/matplotlib in Kivy
- 22. python matplotlib multiple bars
- 23. Combina NotifyIcon e ToolTip
- 24. Python: Matplotlib Surface_plot
- 25. Barchart con etichette verticali in python/matplotlib
- 26. Python Matplotlib - Imporre dimensioni forma con Imsave
- 27. heatmap con dataset dispersione python matplotlib
- 28. Plottaggio della serie timestamp POSIXct con ggplot2
- 29. Libreria di plottaggio Haskell simile a MATLAB
- 30. Combina Realm.io e Firebase
fa qualcuno sa se funziona in 3D? possiamo aggiungere un'immagine ad un aereo? – CromeX
@CromeX: si prega di fare una domanda a parte. I collegamenti – tom10
non sembrano funzionare più. –