标签: polar-coordinates

如何在Matlab中用圆而不是直线轴绘图?

我有一组3个数据集,我想在MATLAB中绘制,但是'x'轴,我想以圆形而不是直底线形式给出.有什么想法怎么做?

一个示例图:

alt text http://img526.imageshack.us/img526/5420/busvoltageplot.jpg

在MATLAB中绘制的正常命令是plot(x, data1, x data2, x, data3),x轴被视为直线.我希望x轴取圆圈.有没有人知道它的命令.

matlab plot polar-coordinates

5
推荐指数
2
解决办法
1万
查看次数

在Matplotlib/Python中更改Polar Plots的轴选项

我在Matplotlib中更改轴标签时遇到问题.我想更改Polar Plot中的径向轴选项.

基本上,我正在计算圆柱体的扭曲,这只是半径偏离原始(完全圆形)圆柱体的多少.一些失真值是负的,而一些是由于拉伸和压缩力而为正.我正在寻找一种以图形方式在圆柱坐标中表示这种情况的方法,所以我认为极地情节是我最好的选择.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)
Run Code Online (Sandbox Code Playgroud)

我的情节如下: 坏

但这不是我想要呈现它的方式.我想改变我的径向轴,以便我可以将数据显示为偏离某个参考值,比如说-2.如何在极坐标中询问Matplotlib更改最小轴标签?我可以在Excel中轻松完成这项工作.我选择最小径向值为-2,以获得以下Excel雷达图:
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) …
Run Code Online (Sandbox Code Playgroud)

python plot matplotlib axis-labels polar-coordinates

5
推荐指数
1
解决办法
2万
查看次数

如何以较少的迭代次数找到最大值

我将信号的相位从0度改变到360度,以获得最大电压值.因为如果我改变信号的相位,电压也会改变.我有找到最大值的代码.

void Maxphase(float *max, unsigned int *index) 
{
*max = 0.0;
float value;
unsigned int i, data;
for (i=0;i<=360;i++) 
{              
    phaseset(i); 
    delay_ms(100);
    data = readvalue(); 
    value = voltage(mux1);    
    if(value > *max)   //find max value 
    { 
        *max = value;    //max voltage 
        *index = i;   
    }  
}                           
}
Run Code Online (Sandbox Code Playgroud)

从上面的代码我得到38秒(360*100)后的最大值(电压),因为对于每次读取操作,我的设备需要100ms延迟.这太大了,我无法改变硬件因此我希望通过优化软件在2到3秒内获得最大值.然后我尝试了以下代码.

void Maxphase(float *max1, unsigned int *index1) 
{
  max = 0.0;
  float value;
  unsigned int i,j,data;
  for (i=0;i<=360;i+=10) 
   {              
    phaseset(i); 
    delay_ms(100);
    data = readvalue(); 
    value = voltage(mux1);    
    if(value > max)   //find max value 
    { …
Run Code Online (Sandbox Code Playgroud)

c interpolation binary-search polar-coordinates

5
推荐指数
1
解决办法
352
查看次数

如何在R中绘制极坐标?

假设(x(t),y(t))具有极坐标(√t,2πt).绘图(x(t),y(t))为t∈[0,10].

R中没有适当的功能用极坐标绘图.我通过给出x =√t&y =2πt尝试了正常的情节.但结果图并不像预期的那样.

我从"使用r进行科学编程和模拟的介绍"中得到了这个问题,书中说的是情节应该是螺旋式的.

r parametric-equations polar-coordinates

5
推荐指数
1
解决办法
8446
查看次数

在matplotlib中的极坐标图上移动径向刻度标签

来自matplotlib的例子:

import numpy as np
import seaborn as sbs
import matplotlib.pyplot as plt

r = np.arange(0, 3.0, 0.01)
theta = 2 * np.pi * r

ax = plt.subplot(111, polar=True)
ax.plot(theta, r, color='r', linewidth=3)
ax.set_rmax(2.0)
ax.grid(True)

ax.set_title("A line plot on a polar axis", va='bottom')
plt.show()
Run Code Online (Sandbox Code Playgroud)

极地情节

如何将径向刻度标签(0.5,1.0,1.5,2.0)移动到不同的角度,比如120度?

python matplotlib polar-coordinates

5
推荐指数
1
解决办法
8982
查看次数

如何在 matplotlib plt.polar 图中设置轴限制

假设我有以下极坐标图:

a=-0.49+1j*1.14
plt.polar([0,angle(x)],[0,abs(x)],linewidth=5)
Run Code Online (Sandbox Code Playgroud)

matplotlib 极坐标图

我想将径向限制调整为 0 到 2。

做这个的最好方式是什么?

请注意,我是专门询问该plt.polar()方法(而不是polar=True在类似问题中常见的正常图中使用参数)。

这似乎有效,除非我从控制台(Spyder、Win7)进行绘图:

>>> ax=plt.gca()
>>> ax.set_rlim(0,2)
Run Code Online (Sandbox Code Playgroud)

python plot numpy matplotlib polar-coordinates

4
推荐指数
2
解决办法
2万
查看次数

将极坐标应用于UIImage

我想将常规的全景照片转换为极坐标以创建“微小的地球”效果,但是我不知道该如何解决。我会假设有一些有用的Core Graphics过滤器或第三方库,但我找不到任何库。

例:

小小的地球全景

core-graphics image-processing uiimage polar-coordinates

4
推荐指数
1
解决办法
384
查看次数

Python 数据框:将负极角更改为正极角

这不起作用:

df[df['angle'] < 0]] += 360
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?我需要一个已经存在的熊猫数据框,其中负角和正角更新为正极坐标角(0 到 360 度)。

有:

[-135, -90, -45, 180, 135, 90, 45, 0, etc... ] # polar 'angles' in degrees (with negatives)
Run Code Online (Sandbox Code Playgroud)

想:

[315, 270, 225, 180, 135, 90, 45, 0, etc... ] # polar 'angles' in degrees (positive only)
Run Code Online (Sandbox Code Playgroud)

// 编辑(响应)://////////////////////////////////////// ///////////////////////////////////////////////// ///////////////////////////////

这一行df[df['angle'] < 0]] += 360给出了一个类型错误:
“类型错误:无法操作 360,块值必须是 str,而不是浮点数。”

数据框'angle'的信息为:
“名称:角度,dtype:in64,

我使用的原始“蛮力”解决方案是:

for i in range(len(df['angle'])):
    if df['angle'][i] < 0:
        df['angle'][i] += 360
Run Code Online (Sandbox Code Playgroud)

这有效,但速度很慢,并给出警告,然后告诉我查找有关数据帧索引的文档。

python-3.x pandas polar-coordinates

4
推荐指数
1
解决办法
2254
查看次数

如何使用 matplotlib 在极坐标图中绘制曲线/圆弧?

我试图弄清楚如何在极坐标图中的两点之间创建圆弧,但我绘制的线是连接它们的直线,即使该图是极坐标的。

我需要使用不同的绘图函数来代替吗ax.plot

我注意到有些补丁matplotlib可能是我应该使用的,但我不确定如何以这种方式添加它们。

如何在极坐标图上从 A 点和 B 点绘制一条曲线?

# Create polar plot object
with plt.style.context("seaborn-white"):
    fig = plt.figure(figsize=(5,5))
    ax = fig.add_subplot(111, projection="polar")
    # Draw 3 lines
    for degree in [90, 210, 330]:
        rad = np.deg2rad(degree)
        ax.plot([rad,rad], [0,1], color="black", linewidth=2)
    # Connect two points with a curve
    for curve in [[[90, 210], [0.5, 0.8]]]:
        curve[0] = np.deg2rad(curve[0])
        ax.plot(curve[0], curve[1])
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

python matplotlib figure polar-coordinates

4
推荐指数
1
解决办法
4205
查看次数

如何使用ggplot在圆内随机散布点,而不会围绕中心聚集?

我想用来ggplot画一个圆,然后在里面散点。我有代码(从这个答案中采用)让我非常接近我想要的。但是,我希望点随机散布在圆圈内,但现在我在中心周围出现了一个不需要的簇。

我看到了一个类似的 SO question and answer,但它是在 c# 中,我不明白如何使其适应R代码。

到目前为止我的代码

下面的代码定义了一个自定义的可视化函数vis_points_inside_circle(),然后调用了4次,给出了4个使用我当前方法可视化的例子。

library(ggplot2)
library(ggforce)

## set up function
vis_points_inside_circle <- function(n) {
  
  # part 1 -- set up empty circle
  df_empty_circle <-
    data.frame(x = 0,
               y = 0, 
               r = 1)
  
  p_empty_circle <-
    ggplot(df_empty_circle) +
    geom_circle(aes(x0 = x, y0 = y, r = r)) + 
    coord_fixed() +
    theme_void()
  
  # part 2 -- set up points scatter
  r <- runif(n)
  th …
Run Code Online (Sandbox Code Playgroud)

geometry trigonometry r ggplot2 polar-coordinates

4
推荐指数
1
解决办法
52
查看次数