Ich möchte mehrere Datensätze auf demselben Streudiagramm zeichnen:
cases = scatter(x[:4], y[:4], s=10, c='b', marker="s")
controls = scatter(x[4:], y[4:], s=10, c='r', marker="o")
show()
Das Obige zeigt nur die neuesten scatter()
Ich habe auch versucht:
plt = subplot(111)
plt.scatter(x[:4], y[:4], s=10, c='b', marker="s")
plt.scatter(x[4:], y[4:], s=10, c='r', marker="o")
show()
python
scipy
matplotlib
Austin Richardson
quelle
quelle
Antworten:
Sie benötigen einen Verweis auf ein
Axes
Objekt, um weiterhin auf demselben Unterplot zeichnen zu können.import matplotlib.pyplot as plt x = range(100) y = range(100,200) fig = plt.figure() ax1 = fig.add_subplot(111) ax1.scatter(x[:4], y[:4], s=10, c='b', marker="s", label='first') ax1.scatter(x[40:],y[40:], s=10, c='r', marker="o", label='second') plt.legend(loc='upper left'); plt.show()
quelle
111
infig.add_subplot(111)
bedeuten?Ich bin auf diese Frage gestoßen, da ich genau das gleiche Problem hatte. Obwohl die akzeptierte Antwort gut funktioniert, aber mit der matplotlib-Version
2.1.0
ist es ziemlich einfach, zwei Streudiagramme in einem Diagramm zu haben, ohne einen Verweis auf zu verwendenAxes
import matplotlib.pyplot as plt plt.scatter(x,y, c='b', marker='x', label='1') plt.scatter(x, y, c='r', marker='s', label='-1') plt.legend(loc='upper left') plt.show()
quelle
Ich weiß nicht, es funktioniert gut für mich. Genaue Befehle:
import scipy, pylab ax = pylab.subplot(111) ax.scatter(scipy.randn(100), scipy.randn(100), c='b') ax.scatter(scipy.randn(100), scipy.randn(100), c='r') ax.figure.show()
quelle
Sie können dies auch problemlos in Pandas tun, wenn Ihre Daten in einem Datenrahmen dargestellt sind, wie hier beschrieben:
http://pandas.pydata.org/pandas-docs/version/0.15.0/visualization.html#scatter-plot
quelle