使用Matplotlib / Python创建一堆极坐标图
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了使用Matplotlib / Python创建一堆极坐标图,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1741字,纯文字阅读大概需要3分钟。
内容图文
![使用Matplotlib / Python创建一堆极坐标图](/upload/InfoBanner/zyjiaocheng/721/2cc4279d737d423da6ebb8a6be42716d.jpg)
我需要生成一堆2D极坐标图(一个3D圆柱图),以便我可以查看扭曲的圆柱体.我想使用matplotlib,因为我已经安装了它,并希望将我的代码分发给只有matplotlib的其他人.例如,假设我有一堆二维数组.有没有办法,我可以做到这一点,而无需下载外部包?这是我的代码.
#!usr/bin/env python
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(-180.0,190.0,10)
theta = (np.pi/180.0 )*x # in radians
A0 = 55.0
offset = 60.0
R = [116.225,115.105,114.697,115.008,115.908,117.184,118.61,119.998,121.224,122.216,122.93,123.323,123.343,122.948,122.134,120.963,119.575,118.165,116.941,116.074,115.66,115.706,116.154,116.913,117.894,119.029,120.261,121.518,122.684,123.594,124.059,123.917,123.096,121.661,119.821,117.894,116.225]
fig = plt.figure()
ax = fig.add_axes([0.1,0.1,0.8,0.8],polar=True) # Polar plot
ax.plot(theta,R,lw=2.5)
ax.set_rmax(1.5*(A0)+offset)
plt.show()
我有10个类似的2D极坐标图,我想要很好地叠加它们.如果有更好的方法可以在3D中显示扭曲的圆柱体,我完全愿意接受建议.任何帮助,将不胜感激.谢谢!
解决方法:
如果要使用matplotlib堆栈极坐标图,一种方法是使用Axes3D模块.您会注意到我首先使用了极坐标,然后在我准备绘制它们时将它们转换回笛卡尔坐标.
from numpy import *
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
n = 1000
fig = plt.figure()
ax = fig.gca(projection='3d')
for k in linspace(0, 5, 5):
THETA = linspace(0, 2*pi, n)
R = ones(THETA.shape)*cos(THETA*k)
# Convert to Cartesian coordinates
X = R*cos(THETA)
Y = R*sin(THETA)
ax.plot(X, Y, k-2)
plt.show()
如果你使用ax.plot的最后一个参数,它会控制每个切片的高度.例如,如果要将所有数据投影到单个轴,则可以使用ax.plot(X,Y,0).对于更奇特的示例,您可以将数据的高度映射到一个函数,比如一个saddle ax.plot(X,Y,-X ** 2 Y ** 2).通过玩颜色,你可以在理论上代表多个4维数据集(虽然我不确定这将是多么清晰).以下示例:
内容总结
以上是互联网集市为您收集整理的使用Matplotlib / Python创建一堆极坐标图全部内容,希望文章能够帮你解决使用Matplotlib / Python创建一堆极坐标图所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。