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轴的刻度现在是一个空的列表”,从效果上来看就是刻度不见了。
以上。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值