2016-02-24 4 views
2

Я некоторые моменты, которые я хотел бы построить для презентации, но вместо построения характерных точек шариковых, есть ли способ для построения изображения в формате PNG, что-то вродеPlotting IMG с Matplotlib

plt.scatter(X,Y, img='figure.png') 

ответ

2

AnnotationBox модуль в Matplotlib помогает в построении изображения вместо точек в визуализаций

import numpy as np 
import matplotlib.pyplot as plt 
from matplotlib.offsetbox import OffsetImage, AnnotationBbox 
from matplotlib.cbook import get_sample_data 

def main(): 
    x = np.linspace(0, 10, 20) 
    y = np.cos(x) 
    image_path = get_sample_data('pic.png') 
    fig, ax = plt.subplots() 
    imscatter(x, y, image_path, zoom=0.1, ax=ax) 
    ax.plot(x, y) 
    plt.show() 

def imscatter(x, y, image, ax=None, zoom=1): 
    if ax is None: 
     ax = plt.gca() 
    try: 
     image = plt.imread(image) 
    except TypeError: 
     pass 
    im = OffsetImage(image, zoom=zoom) 
    x, y = np.atleast_1d(x, y) 
    artists = [] 
    for x0, y0 in zip(x, y): 
     ab = AnnotationBbox(im, (x0, y0), xycoords='data', frameon=False) 
     artists.append(ax.add_artist(ab)) 
    ax.update_datalim(np.column_stack([x, y])) 
    ax.autoscale() 
    return artists 

main() 

Полученное изображение:

enter image description here

+0

В любом случае, чтобы построить один символ за точку? – gdlm

+0

, которые помогают, спасибо – gdlm

Смежные вопросы