2013-05-27 16 views
28

Ich möchte eine Variable Markergröße in einem Streudiagramm festlegen. Das ist mein Code:Variable Punktgröße in Matplotlib einstellen

import numpy as np 
import matplotlib.pyplot as plt 

from os import getcwd 
from os.path import join, realpath, dirname 

mypath = realpath(join(getcwd(), dirname(__file__))) 
myfile = 'b34.dat' 

data = np.loadtxt(join(mypath,myfile), 
    usecols=(1,2,3), 
    unpack=True) 

fig = plt.figure() 
ax1 = fig.add_subplot(111) 
ax1.plot(data[0], data[1], 'bo', markersize=data[2], label='the data') 
plt.show() 

Die Datei, die ich importiere, hat drei Spalten. Die Spalten 1 und 2 sind in data[0] und gespeichert) sind die (x,y) Werte und ich möchte, dass jeder Punkt eine Größe in Bezug auf 3 Spalte haben (dh: data[2])

Ich verwende die Canopy IDE durch die Art und Weise.

Antwort

31

help(plt.plot) zeigt

markersize or ms: float   

so scheint es, plt.plot nicht die marker ein Array sein zulässt.

könnten Sie plt.scatter jedoch verwenden:

ax1.scatter(data[0], data[1], marker='o', c='b', s=data[2], label='the data') 

PS. Sie können auch überprüfen, ob plt.plotmarkersize ein Float sein muss, indem Sie in the official documentation nach "markersize" suchen.

Verwandte Themen