Python的Matplotlib模块的奇怪行为 – 绘制圆圈
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python的Matplotlib模块的奇怪行为 – 绘制圆圈,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1769字,纯文字阅读大概需要3分钟。
内容图文
我目前正在编写一个必须生成一组图的程序.每个绘图必须有3个同心圆,其半径由数据集确定.此外,还必须添加另一个红色圆圈,其可以具有不同的中心.但是,我遇到了各种各样的问题.除非圆的半径太大,否则我应该在图上看到3个黑色和1个红色圆圈,但我没有.
我分离了制作情节的代码片段,这里是 –
import matplotlib.pyplot as plt
fig1 = plt.figure(1, figsize=(6,6))
plt.xlim(-30,30)
plt.ylim(-30,30)
rcircle1 = plt.Circle( (0,0), 6.0, edgecolor="black", facecolor="white")
rcircle2 = plt.Circle( (0,0), 12.0, edgecolor="black", facecolor="white")
rcircle3 = plt.Circle( (0,0), 18.0, edgecolor="black", facecolor="white")
bcircle = plt.Circle( (8.5,-5.8) ,2, edgecolor="red", facecolor="white")
ax = fig1.gca()
ax.add_artist(rcircle1)
ax.add_artist(rcircle2)
ax.add_artist(rcircle3)
ax.add_artist(bcircle)
fig1.savefig("Model.png", dpi=150)
上面的输出是 –
我尝试查看与Circle()和add_artist()相关的各种类变量,但无法找到可能影响此行为的内容.
我目前的工作是以下代码 –
import numpy as np
import matplotlib.pyplot as plt
th = np.arange(-3.14,3.14,0.01)
fig1 = plt.figure(1,figsize=(6,6))
plt.xlim(-30,30)
plt.ylim(-30,30)
plt.plot( 6*np.cos(th), 6*np.sin(th), color="black")
plt.plot( 12*np.cos(th), 12*np.sin(th), color="black")
plt.plot( 18*np.cos(th), 18*np.sin(th), color="black")
# (8,5, -5,8)
plt.plot( 2*np.cos(th) + 8.5, 2*np.sin(th) - 5.8, color="red")
fig1.savefig("Hard.png", dpi=150)
上面代码生成的输出正是我想要的!
虽然这确实有效,但它违背了在matplotlib中使用Circle()方法的目的.任何人都可以评论为什么第一个代码不能像我预期的那样工作?
解决方法:
你的问题是facecolor参数.你最后添加了最大的圆圈,它有一个不透明的中心.
在第二个示例中,您绘制的是一条线,而不是“填充”的圆圈.
要么改变你添加圆圈的顺序(或提供zorder kwarg),要么传递facecolor =’none'(注意:它是字符串“none”,而不是对象None)以获得“未填充”的圆圈.
内容总结
以上是互联网集市为您收集整理的Python的Matplotlib模块的奇怪行为 – 绘制圆圈全部内容,希望文章能够帮你解决Python的Matplotlib模块的奇怪行为 – 绘制圆圈所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。