Matplotlib画图:Chapter(2)
闲着无聊画了如下这张图
图例
上图有几个重要的元素需要关注。首先,仔细观察这个“圆盘”可以发现,它其实是把一串字符串绕着圆心那个点形成的,那么要在figure中加入字符串,就需要用到plt.text()函数。其次,一般的figure是由周围四条黑线框起来的(叫做spines),现如今却只剩下两条了,而这两条的颜色和互相之间的交点也从(0,0)变成了图中的红点(4,4)。并且剩下的两条坐标轴上,原本应该存在的刻度也不见了。
源代码如下:
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111)
ax.scatter(4,4,s = 10,c = 'r')
for i in range(30):
ax.text(4,4,'****88888****88888',rotation = 0+360/30*i,ha='left',wrap = True)
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.yaxis.set_ticks_position('left')
ax.spines['bottom'].set_position(('data',4))
ax.spines['left'].set_position(('data',4))
ax.spines['bottom'].set_color('g')
ax.spines['left'].set_color('g')
plt.xticks([])
plt.yticks([])
plt.savefig('./pic20191111_0_new')
plt.show()
分析:首先我们用scatter函数,先画了一个size为10,color为红色的点,坐标为(4,4)。ax.text()函数的作用是以(4,4)点为起点,在图中显示8888888888 字符串,rotation表示字符串这条“直线”与x轴的夹角,参数wrap必须为True,否则这30条字符串(for循环30次)并不会都以(4,4)为起点。
接下来,就是对figure周围那四条黑色边框(spines)的处理。这四条spines是按照上下左右的方式命名的,依此是’top’,‘bottom’,‘left’,‘right’。set_color(‘none’),顾名思义,就是把对应的这条spine“擦掉”。那么我们就只剩下’bottom’,'left’两条spines,那么就让它们依此作为x轴和y轴。ax.xaxis.set_ticks_position(‘bottom’)的意思就是让‘bottom’这条spine作为x轴(xaxis)。接下来,让’bottom’和’left’这两条spines在(4,4)点相交,也就是让x轴和y轴在(4,4)点相交。再然后,让’bottom’和‘left’两条spines的color设为‘g’ = green。
最后,至于如何让x轴,y轴的刻度消失,只要调用plt.xticks([]),实现的作用就是“x轴的刻度现在是一个空的列表”,从效果上来看就是刻度不见了。
以上。
上一篇: 论男人有多么敷衍
下一篇: 元旦快乐祝福图片,2013年蛇年图片
推荐阅读
-
html5 Canvas画图教程(2)—画直线与设置线条的样式如颜色/端点/交汇点
-
笔记 Bioinformatics Algorithms Chapter2
-
html5 Canvas画图教程(2)—画直线与设置线条的样式如颜色/端点/交汇点
-
使用pandas模块读取csv文件和excel表格,并用matplotlib画图的方法
-
《Java 8 in Action》Chapter 2:通过行为参数化传递代码
-
Python matplotlib画图与中文设置操作实例分析
-
python Matplotlib画图之调整字体大小的示例
-
笔记 Bioinformatics Algorithms Chapter2
-
python matplotlib画图库学习绘制常用的图
-
Python使用matplotlib和pandas实现的画图操作【经典示例】