- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在 Matplotlib 中更改轴标签时遇到问题。我想更改极坐标图中的径向轴选项。
基本上,我计算的是圆柱体的变形,它只不过是半径偏离原始(完美圆形)圆柱体的程度。由于拉力和压缩力,一些变形值是负的,而一些是正的。我正在寻找一种以图形方式在柱坐标中表示它的方法,所以我认为极坐标图是我最好的选择。 Excel 为我提供了一个“雷达图”选项,该选项足够灵活,可以让我指定最小和最大径向轴值。我想使用 Matplotlib 在 Python 上复制它。
我在极坐标上绘制的 Python 脚本如下。
#!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
offset = 2.0
R1 = [-0.358,-0.483,-0.479,-0.346,-0.121,0.137,0.358,0.483,0.479,0.346,0.121,\
-0.137,-0.358,-0.483,-0.479,-0.346,-0.121,0.137,0.358,0.483,0.479,0.346,0.121,\
-0.137,-0.358,-0.483,-0.479,-0.346,-0.121,0.137,0.358,0.483,0.479,0.346,0.121,\
-0.137,-0.358]
fig1 = plt.figure()
ax1 = fig1.add_axes([0.1,0.1,0.8,0.8],polar=True)
ax1.set_rmax(1)
ax1.plot(theta,R1,lw=2.5)
我的情节如下所示:
但这不是我想要呈现的方式。我想改变我的径向轴,以便我可以将数据显示为与某个引用值的偏差,比如 -2。我如何要求极坐标中的 Matplotlib 更改最小轴标签?我可以在 Excel 中非常轻松地做到这一点。我选择最小半径值 -2,得到如下 Excel 雷达图:
在 Python 上,我可以轻松地将我的输入数据偏移 2 个数量级。我的新数据集称为 R2,如图所示:
#!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
offset = 2.0
R2 = [1.642,1.517,1.521,1.654,1.879,2.137,2.358,2.483,2.479,2.346,2.121,1.863,\
1.642,1.517,1.521,1.654,1.879,2.137,2.358,2.483,2.479,2.346,2.121,1.863,1.642,\
1.517,1.521,1.654,1.879,2.137,2.358,2.483,2.479,2.346,2.121,1.863,1.642]
fig2 = plt.figure()
ax2 = fig2.add_axes([0.1,0.1,0.8,0.8],polar=True)
ax2.plot(theta,R2,lw=2.5)
ax2.set_rmax(1.5*offset)
plt.show()
情节如下所示:
一旦我得到这个,我就可以手动添加轴标签并将其硬编码到我的脚本中。但这是一种非常丑陋的方式。有什么方法可以直接获得 Matplotlib 等同于 Excel 雷达图并更改轴标签而无需操作我的输入数据?
最佳答案
您可以只使用设置轴限制的常规方法:
#!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
offset = 2.0
R1 = [-0.358,-0.483,-0.479,-0.346,-0.121,0.137,0.358,0.483,0.479,0.346,0.121,\
-0.137,-0.358,-0.483,-0.479,-0.346,-0.121,0.137,0.358,0.483,0.479,0.346,0.121,\
-0.137,-0.358,-0.483,-0.479,-0.346,-0.121,0.137,0.358,0.483,0.479,0.346,0.121,\
-0.137,-0.358]
fig1 = plt.figure()
ax1 = fig1.add_axes([0.1,0.1,0.8,0.8],polar=True)
ax1.set_ylim(-2,2)
ax1.set_yticks(np.arange(-2,2,0.5))
ax1.plot(theta,R1,lw=2.5)
关于python - 在 Matplotlib/Python 中更改极坐标图的轴选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9219353/
我正在寻找绘制极坐标数据的替代方法。我需要实现像 this 这样的图表具有动态选项,例如 this . 非常感谢您的帮助! 最佳答案 我个人需要这些: Highcharts JS canvasXpre
我是一名优秀的程序员,十分优秀!