Порядок данных скремблирования полярной проекции Matplotlib (Excel отображает правильно) - PullRequest
0 голосов
/ 04 июня 2018

Я пытаюсь построить трассировку LiDAR, используя полярную проекцию Matplotlib.Кажется, что полярная проекция скремблирует мои точки данных в случайном порядке.Это то, что у меня есть.

ax = plt.subplot(111, projection='polar')
ax.set_rmax(5000)
ax.plot(lidar_bins, lidar_field)
plt.show()

Где данные:

lidar_bins = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360]

lidar_field = [0., 1316.5, 0., 1750.75, 1785.25, 1801.5, 1822.75, 1864., 1330.5, 1334., 0., 2006.5, 2066.5, 2109., 2169.25, 2175.75, 2245.75, 2307.5, 2393.75, 2481.25, 2482., 2557.25, 2683.5, 2663.75, 2674.5, 2672., 2649., 2624.25, 2600.75, 2599., 2579.25, 2560.25, 2541.75, 2526.75, 1795.75, 1832., 2487.25, 2482.25, 2482.75, 2466.25, 2454.5, 2450., 2449.5, 2444.25, 2444.75, 2442.5, 2429.25, 2428.25, 1760.25, 2426.75, 2414., 2414.75, 2414.75, 2426.75, 2428.75, 2430.25, 2444.5, 2429.25, 2448., 2447.25, 2451., 2464.75, 2467.25, 2482.25, 2483.75, 2487.75, 2465.75, 2517.25, 2529., 2530., 2541.5, 2564., 2594.5, 2601., 2607., 2640.5, 2651.25, 2689., 2688.25, 2715.25, 0., 0., 1262., 1239., 0., 0., 2671.25, 2674., 2711.75, 2738.75, 2780.25, 2803.5, 2830.5, 3042.75, 3097.75, 3255.25, 3259.25, 3269.75, 3356.25, 3324.75, 3293.75, 3263.5, 3205., 3163., 3106.75, 3103., 3071., 3039.5, 2989.25, 2988.25, 2978.5, 1791.75, 1803.75, 1812.75, 1887.75, 1701.25, 1683., 1681.5, 1662.75, 1654., 1638.75, 1638.25, 1625.25, 1612.25, 1606.5, 1595.25, 1594.75, 1561.5, 1554., 1547.25, 1548.25, 1542., 1533.75, 1537.5, 1533., 1531.5, 1526., 1523.5, 1525., 1524., 1524.5, 1525.25, 1530.25, 1531.5, 1530.5, 1531.5, 1539.25, 1542.5, 1541.75, 1551.25, 1560., 1560.25, 1561.5, 1569., 1579.75, 1577., 1585., 1589., 1595.5, 1610.75, 1616.5, 1624.25, 1635.25, 1649.25, 1627., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 458.75, 457.25, 451.75, 451., 451.5, 440.75, 440.25, 439.25, 439., 437.5, 437.5, 437.75, 437.5, 437.5, 438.5, 439.25, 440.75, 440.75, 439.75, 441.5, 443.75, 452.25, 453., 455.5, 458.5, 459.25, 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 127.75, 0., 1460.75, 1474.75, 148.5, 1503., 1534.75, 1567.75, 0., 0., 0., 0., 0., 670.5, 668.5, 666.25, 660., 656., 655.5, 654.25, 653.5, 657.5, 659.5, 663., 667.75, 673.75, 683., 683.5, 696.75, 588.75, 586., 0., 870., 886.75, 1346., 1345.5, 1339.25, 1331.5, 1048.75, 0., 1329.25, 1318.5, 1313.25, 1307.75, 1307., 1305.25, 1306., 1303.25, 1303.5, 1302.25, 1304.25, 1303., 1304.5, 1305., 1305.75, 1306.5, 1313., 1314.5, 1315.25, 1319., 1324.75, 1330.5, 1336.5, 1337.5, 1342.5, 988.25, 0., 1369.5, 1374.25, 1382.25, 1390.25, 696.5, 681., 0., 696.5, 0., 1462., 1387.25, 1431.75, 1513.75, 1509.5, 1533., 1550.75, 1413.5, 1148.25, 1119.25, 1134.5, 1297.75, 1297.75]

Это результирующий график.matplotlib graph

Однако, если я строю те же самые данные в Excel, я получаю совершенно разумный график.

excel graph

1 Ответ

0 голосов
/ 04 июня 2018

Полярные графики в matplotlib требуют, чтобы тета-координаты были в радианах.

Использование

import matplotlib.pyplot as plt
import numpy as np

ax = plt.subplot(111, projection='polar')
ax.set_rmax(5000)
ax.plot(np.deg2rad(lidar_bins), lidar_field)
plt.show()

enter image description here

...