代码之家  ›  专栏  ›  技术社区  ›  K. Schneider

用每5度的点绘制极坐标图?

  •  0
  • K. Schneider  · 技术社区  · 7 年前

    如果在度圆上每隔5度绘制一个唯一值,我想绘制一个极坐标图。我真的不知道该问什么正确的问题,但我遇到了麻烦。这是我当前的代码:

    import numpy as np
    import matplotlib.pyplot as plt
    import csv
    
    r = csv.reader(open('data.csv'))
    #data is a list of 73 data points taken at each 5 degree increment
    theta = (0,360,5)
    
    #plot image
    img = plt.imread("voltage_abs.png")
    fig, ax = plt.subplots()
    ax.imshow(img)
    ax.imshow(img)
    ax = plt.subplot(111, projection='polar')
    ax.plot(theta, r)
    ax.set_rmax(2)
    ax.set_rticks([0.5, 1, 1.5, 2])  # less radial ticks
    ax.set_rlabel_position(-22.5)  # get radial labels away from plotted line
    ax.grid(True)
    
    ax.set_title("Polar", va='bottom')
    plt.show()
    

    1 回复  |  直到 7 年前
        1
  •  2
  •   BenT    7 年前

    您没有正确使用csv读取器。相反,使用numpy的 genfromtxt 作用我自己制作了数据。csv文件,73个数字增加2。

    import numpy as np
    import matplotlib.pyplot as plt
    
    
    r =  np.genfromtxt('data.csv',delimiter=',')
    #data is a list of 73 data points taken at each 5 degree increment
    theta = np.linspace(0, 2 * np.pi, 73)
    
    ax = plt.subplot(111, projection='polar')
    ax.plot(theta, r)
    ax.set_rmax(2)
    ax.set_rticks([0.5, 1, 1.5, 2])  # less radial ticks
    ax.set_rlabel_position(-22.5)  # get radial labels away from plotted line
    ax.grid(True)
    
    ax.set_title("Polar", va='bottom')
    plt.show()
    

    enter image description here