2013-01-14 130 views
21

在本散点图中的标记示例中,我已将颜色设置为绿色,边缘颜色设置为黑色,并孵化为“|”。为了完全显示孵化图案,我必须设置边缘颜色,但是当我这样做时,我会在标记周围留下一个非常厚的边框。两个问题:如何更改标记边框宽度和填充宽度?

1)我怎样才能设置这个边界的大小(最好是0)?

2)如何增加舱口线的厚度?

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

谢谢!

+0

到2 .:看看[如何更改matplotlib中孵化线的线宽?](http://stackoverflow.com/questions/29549530/how-to-change-the-linewidth-of-hatch- in-matplotlib) – Henhuy

回答

34
  1. 你只需要设置linewidth控制标记边框厚度。
  2. 通过重复符号可以增加阴影密度(在下例中,在R/H窗格中重复'|';请注意,要获得NW-> SE对角线,符号必须转义,因此需要两次许多字符真正加倍 - '\\\\'是密度2,而'||||'是密度4)。但是,我不认为孵化内的各条线的粗细是可控的。

请参见下面的代码示例,以产生散点图如这些:上collectionsscatter 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文档。

+0

您无法改变舱口线的宽度是正确的,它被硬编码为1(至少在aggbackend) – tacaswell

+0

并增加调整舱口大小的能力看起来像一个巨大的承担...... – tacaswell

+0

当处理字符“\”的倍数时,使用Python字符串乘法运算符可能会有帮助。 例如,由于字符转义,对于单个“\”字符,可以使用字符串“”\\“'。对于'n'重复,你可以使用'n *“\\”',例如'4 *“\\”'会给出一个由四个'''字符组成的字符串。 – naitsirhc