RE: Learn Python with Steem #10 #11 笔记

You are viewing a single comment's thread from:

Learn Python with Steem #10 #11 笔记

in blog •  6 years ago 

设置color 这个参数的目的是为了自定义每块三角形图像的颜色,也就是facecolor ,参数值是一个包含RGBA颜色值的元组,其中RGB的值表示颜色,A表示透明度,而(94, 79, 162)正好是这个颜色图片.png,这里没有设置透明度。

(94, 79, 162)是0~255范围的RGB值,但参数要求的RGB的值范围是0~1之间的,所以要将(94, 79, 162)每个数都除以255,这好像叫“归一化”吧。

查看帮助 可以看到 bar(direction, var, **kwargs) 并没有color这个参数,但是有colors这个参数,其中原因是我粗心漏写了个s,但又歪打正着达到了更改facecolor 的目的。

windrose 的功能实现用到了matplotlib这个库,除了windrose 文档里写的参数,还可以传递matplotlib.pyplot.plot支持的任何参数。color是其中一个,如果设置了color这个参数,会把facecolor ,edgecolor (边缘颜色)都设置为color的值,所以它给了条警告信息:“Setting the 'color' property will overridethe edgecolor or facecolor properties.”

facecolor 也是其中一个参数,如果直接设置facecolor 的值是不会生效的,因为windrose 在初始化时故意丢掉了这个参数,而把colors的参数值赋值给了facecolor。

也就是说要改变facecolor,正确的方法是设置colors这个参数。比如把原来的程序改成这样:

ax.bar(wd, ws, normed=True, bins=6,opening=0.8,colors='red',edgecolor='white')

或者:

ax.bar(wd, ws, normed=True, bins=6,opening=0.8,colors=[(94/255, 79/255, 162/255)]*6,edgecolor='white')

注意:如果colors的值是一个列表的话,设置colors的值时要符合bins的值,bins划分了多少个级别,colors里面就要多少个与之对应的颜色。

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

謝謝,看完了,明天繼續試,你一個帖子我看三天😂!另外今天碰到的坑主要在各種路徑上~有做出詞雲好開森,謝謝!

Posted using Partiko Android

这个得怪我写的不够详细😂

Posted using Partiko Android

应该是我不太熟悉脚本程序示范方式吧,找了下WordCloud参数资料,发现取图片的颜色作为绘制词云图片的颜色,直接在声明的时候用这个color_func参数就好了,不需要recolor了耶!
image.png