在 Matplotlib/Python 中更改极坐标图的轴选项

2024-01-04

我在更改 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)

My plot looks as follows: bad

But this is not how I want to present it. I want to vary my radial axis, so that I can show the data as a deviation from some reference value, say -2. How do I ask Matplotlib in polar coordinates to change the minimum axis label? I can do this VERY easily in Excel. I choose a minimum radial value of -2, to get the following Excel radar chart:
excelplot

在 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()

The plot is shown below: good

一旦我得到这个,我可以手动添加轴标签并将其硬编码到我的脚本中。但这是一种非常丑陋的方式。有什么方法可以直接获得与 Excel 雷达图等效的 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

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)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Matplotlib/Python 中更改极坐标图的轴选项 的相关文章

随机推荐

  • 根据类似于 mysql 的标签选择相关标题

    TAGS tag id post id value 1 1 some 2 1 good 3 1 title 4 2 some 5 2 good 6 3 some 7 4 good 8 4 title POSTS post id title
  • Objective-C 是否禁止使用结构体?

    我是 Objective C 新手 我尝试使用一个简单的struct and got arc forbids objective c objects in struct 查找 ARC http clang llvm org docs Aut
  • Android:从设备浏览并上传应用程序中的 PDF 或 Word 文件

    我正在创建一个 Android 移动应用程序 用户可以在其中上传他 她的简历 然后将其发送到服务器 简历可以是 pdf 格式或 word 格式 如何浏览pdf和word文件 应该选择哪种类型来浏览这些文件 就像图像一样 我们有图像 Than
  • 添加新数据后如何刷新我的 datagridview

    我在寻找刷新 datagridview 的方法时遇到了很多麻烦 我尝试过 datagridview refresh datagridview Update 但它不起作用 这是我的代码 Imports System Data Imports
  • 在 MAC 中为 Eclipse 设置 JDK

    我买了一台 MacBookPro 我是这个操作系统的新手 我从 Oracle 网站下载了 JDK 并安装了它 Library Java JavaVirtualMachines jdk 1 7 所以当我输入 java version 时一切都
  • 在页面上显示 php 生成的图像

    我有一个用于修改图像的函数 我想在我的页面上与其他页面内容一起显示这些图像 PHP图像函数
  • 为什么我使用=(单个等于)的相等比较不能正常工作? [复制]

    这个问题在这里已经有答案了 我正在尝试检查字符串是否为空 小于或等于 9 位数字或最多 10 位数字 但它始终遵循else if str length lt 9 if str console log The string cannot be
  • 如何像 Wildfireapp 和其他人一样通过 Graph API 动态注册 Facebook 应用程序?

    我正在尝试创建一个抽奖应用程序 我正在尝试复制wildfire http wildfireapp com 但我无法像他们那样动态创建 Facebook 应用程序 我检查了他们正在使用图形 api 在前端显示 但图形 api 中没有可用的方法
  • 如何检索 MongoDB 中对象内的不同键

    我在 MongoDB 中有这个 id ObjectId 58fb35531eb5df245d5d434f name d1 html indexation Citroen 1 color 1 Marca 1 rojo 1 id ObjectI
  • 图表:带状线和曲线交点

    我在没有很多数据点的正弦曲线类型图中添加了一条水平带状线 有没有办法找到x坐标交点 您可以通过分析来解决它 即如果您的数据是从公式导出的 您可以使用数学来求解交集 或者你可以在以下方面的帮助下得到一个近似值GDI 正如您发现使用DataPo
  • UITableView中如何设置表头的高度?

    我已经浏览了有关 UITableView 类和委托参考的 Apple 文档 但找不到显式设置表头高度的方法 我使用以下委托设置表格单元格高度 CGFloat tableView UITableView tableView heightFor
  • 具有多个字段的 LINQ OrderBy

    我有一个列表 需要按两个字段排序 我尝试过在 LINQ 中使用 OrderBy 但这只允许我指定一个字段 我正在寻找要按第一个字段排序的列表 然后如果第一个字段中有任何重复项 则按第二个字段排序 例如 我希望结果看起来像这样 按姓氏然后名字
  • 每个 React 类方法的“函数缺少返回类型”

    我的 Typescript 项目中有一个有状态的 React 组件 我使用 ESLint 来检查它 typescript eslint parser and typescript eslint eslint plugin 我已启用该规则 t
  • setup.py/setup.cfg 安装所有附加功能

    我在 setup cfg 中寻找 继承 其他附加功能的可能性 如下所示 options extras require all
  • .Net 的 Prolog 编译器

    任何人都可以推荐一个用于 Net 的 Prolog 编译器吗 我在网上搜索到的那些似乎已经好几年没有更新了 Thanks Shiraz 在这篇文章中他们推荐P http homepages inf ed ac uk stg research
  • AdRequest.Builder 无法解析为类型

    我正在将 AdMob 合并到我的应用程序中 我已按照开发人员页面中的步骤进行操作 然而 AdRequest Builder 带有红色下划线 它表示 AdRequest 无法解析为类型 and AdRequest Builder 无法解析为类
  • 程序如何在内存中运行以及操作系统处理内存的方式

    我不清楚进程执行时的内存管理 在运行时 Here is a diagram 我不清楚图像中的以下内容 1 该图像所指的堆栈是什么 2 什么是内存映射段 它指的是文件映射 3 堆与进程有什么关系 堆是仅在进程中处理还是堆是由操作系统内核维护的
  • $(位置).attr('href');不工作

    我不知道为什么 但我对这段代码有问题 横幅显示在每个页面上 尽管它指定了属性 location attr href 您可以帮助我吗 div div class bottom content a href http www cliente o
  • 可存储空数据声明

    我正在尝试为 C 库创建 Haskell 包装器 底层结构太复杂 无法表达为显式类型 而且除了在 C 函数之间传递之外 我实际上并不使用它们 所以我使用EmptyDataDecls让 GHC 帮我解决这个问题 我需要的是一个指向这些数据类型
  • 在 Matplotlib/Python 中更改极坐标图的轴选项

    我在更改 Matplotlib 中的轴标签时遇到问题 我想更改极坐标图中的径向轴选项 基本上 我正在计算圆柱体的变形 这只不过是半径偏离原始 完美圆形 圆柱体的程度 由于拉力和压力 一些变形值为负值 而另一些则为正值 我正在寻找一种方法以图