Python和科学计算认证群组  - 讨论区

标题:请教:如何实现matplotlib的颜色和marker的自由控制?

2012年01月11日 星期三 13:08

我想画类似于这样的图:

例:100点构成的集合分成了10类,我想将点用不同的颜色和符号画出来,相同颜色相同符号的点属于同一类。

已经做了点尝试:

marker=('.',',','o','v','^','<','>','1','2','3','4','s','p','*','h','H','+','x')#不同符号

for nsub in range(L): #L为类数

     eleId=pl.find(self.subIndex==nsub) #subIndex存储了类编号0:L-1

     pl.plot(x[eleId],y[eleId],marker[nsub%len(marker)]) #逐类画点(x,y存储了点的坐标)

pl.show()

 

 

2012年01月11日 星期三 13:18

这是运行结果:

问题在于:

1、我还不知道怎么控制颜色,图中的颜色应该是画图时自动分配的。可以看出颜色的种类并不多。我想产生例如L种不同颜色,每画一类点是就是用这一种(类似于marker),或者有别的方式?

    看了一下matplotlib的文档,好像colormap可以自定义,但是没看懂,不会用

2、我现在控制符号的方法是否是最好的?

3、有的特殊符号好像没有吧,例如扑克牌里的梅花:♣,心形❤

2012年01月11日 星期三 14:39

你可以通过color参数指定颜色,它可以是一个表示RGB颜色的元组。

可以用marker参数设置LaTex的符号,markersize设置符号的大小。

pl.plot([0,1,2],[0,1,2],marker=r'$\clubsuit$', markersize=30, color=(1.0, 0.3, 0.5), linestyle="none")

可用的Latex符号请参考:

c:\Python26\Lib\site-packages\matplotlib\_mathtext_data.py

2012年01月16日 星期一 20:27

是否 必须单独安装 Latex  后才能调用, 还是spyder中有Latex相关的库文件?

2012年01月16日 星期一 20:42

matplotlib中自带了一个简易的latex解析器

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2024

    京ICP备05028076号