2013-01-14 3 views
21

Dans cet exemple d'un marqueur de mon nuage de points, j'ai défini la couleur sur vert, et la couleur de bord sur noir, et hachure sur "|". Pour que le motif de hachures apparaisse, je dois régler l'edgecolor, mais quand je le fais, j'obtiens une bordure très épaisse autour du marqueur. Deux questions:Comment changer la largeur de la bordure du marqueur et la largeur de la trappe?

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

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

http://img204.imageshack.us/img204/9730/markerp.png

Merci!

+0

À 2 .: Jetez un coup d'œil à [Comment changer la largeur de ligne de la trappe dans matplotlib?] (Http://stackoverflow.com/questions/29549530/how-to-change-the-linewidth-of-hatch- in-matplotlib) – Henhuy

Répondre

34
  1. Vous avez juste besoin de régler le 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é beaucoup de caractères pour vraiment le doubler - '\\\\' est la densité 2 tandis que '||||' est la densité 4). Cependant, je ne pense pas que l'épaisseur des lignes individuelles dans les hachures soit contrôlable.

Voir l'exemple de code ci-dessous pour produire des diagrammes de dispersion comme 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 matplotlib sur collections et scatter.

+0

Vous avez raison de ne pas pouvoir changer la largeur des lignes hachurées, il est codé dur à 1 (au moins dans l'aggbackend) – tacaswell

+0

et l'ajout de la possibilité de régler la taille des hachures ressemble à un énorme entreprise ..... – tacaswell

+0

En traitant des multiples du caractère ''\'', il peut être utile d'utiliser l'opérateur de multiplication de chaîne Python. Par exemple, en raison d'un caractère qui s'échappe, pour un seul caractère ''\' ', vous utiliserez la chaîne' "\\" '. Pour les répétitions 'n', vous pouvez utiliser' n * "\\" ', par exemple,' 4 * "\\" 'donnerait une chaîne de quatre caractères' '\". – naitsirhc

Questions connexes