it-swarm.com.de

Wie kann man die Markierungsbreite und die Schraffurbreite ändern?

In diesem Beispiel eines Markers aus meinem Streudiagramm habe ich die Farbe auf Grün und die Randfarbe auf Schwarz und das Schraffur auf "|" gesetzt. Damit das Schraffurmuster überhaupt angezeigt wird, muss ich die Randfarbe einstellen. Wenn ich dies jedoch tue, bekomme ich einen sehr dicken Rand um die Markierung. Zwei Fragen:

1) Wie kann ich die Größe dieses Randes einstellen (vorzugsweise auf 0)?

2) Wie kann ich die Stärke der Schraffurlinien erhöhen?

28
David E
  1. Sie müssen lediglich die Variable linewidth einstellen, um die Stärke des Markierungsrandes zu steuern.
  2. Sie können die Schraffurdichte erhöhen, indem Sie die Symbole wiederholen (im folgenden Beispiel wird der '|' im R/H-Bereich wiederholt. Beachten Sie, dass das Symbol für NW-> SE-Diagonalzeilen mit Escapezeichen versehen werden muss, sodass doppelt so viele Zeichen erforderlich sind wirklich verdoppeln - '\\\\' ist Dichte 2, während '||||' Dichte 4) ist. Ich denke jedoch nicht, dass die Dicke der einzelnen Linien innerhalb der Schraffuren kontrollierbar ist.

Sehen Sie sich das Codebeispiel unten an, um Streudiagramme wie diese zu erstellen: example hatching control

import matplotlib.pyplot as plt
# generate some data
x = [1,2,3,4,5,8]
y= [i**2 for i in x]
y2= [60-i**2+3*i for i in x]

# plot markers with thick borders
plt.subplot(121)
plt.scatter(x,y, s=500, marker='s', edgecolor='black', linewidth='3', facecolor='green', hatch='|')
# compare with no borders, and denser hatch.
plt.subplot(122)
plt.scatter(x,y, s=500, marker='s', edgecolor='black', linewidth='0', facecolor='green', hatch='||||')

plt.show()

matplotlib-Dokumentation zu Collections und Scatter .

45
Bonlenfum

Dies ist einige Jahre, nachdem Sie die Frage gestellt haben, aber die einzige Möglichkeit, die ich gefunden habe, besteht darin, die matplotlib.rc zu ändern.

Sie können dies entweder in der eigentlichen .rc-Datei oder in Ihrem python Skript, z.

import matplotlib as mpl

mpl.rc('hatch', color='k', linewidth=1.5)

Dadurch werden alle Schraffurlinien in Ihrem Skript schwarz und die Stärke 1,5 anstatt der Standardeinstellung 1.0.

2
Jacob