web-dev-qa-db-fra.com

Comment changer la largeur de la bordure du marqueur et la largeur de la hachure?

Dans cet exemple de marqueur de mon nuage de points, j'ai défini la couleur sur le vert, et la couleur du bord sur le noir et hachuré sur "|". Pour que le motif de hachures apparaisse, je dois définir la couleur de contour, mais lorsque je le fais, une bordure très épaisse entoure le marqueur. Deux questions:

1) Comment puis-je définir la taille de cette bordure (de préférence à 0)?

2) Comment puis-je augmenter l'épaisseur des lignes de hachurage?

28
David E
  1. Il vous suffit de définir linewidth pour contrôler l'épaisseur de la bordure du marqueur.
  2. Vous pouvez augmenter la densité des hachures en répétant les symboles (dans l'exemple ci-dessous, le '|' est répété dans le volet R/H; notez que pour obtenir des lignes diagonales NW-> SE, le symbole doit être échappé; il faut donc deux fois plus de caractères pour vraiment le double - '\\\\' est la densité 2 alors que '||||' est la densité 4). Cependant, je ne pense pas que l’épaisseur des lignes individuelles à l’intérieur des hachures soit contrôlable.

Voir l'exemple de code ci-dessous pour produire des diagrammes de dispersion tels que ceux-ci: 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()

documentation de matplotlib sur collections et scatter .

45
Bonlenfum