अजगर का उपयोग करते हुए, मैं अज़ीमुथ (डिग्री) के खिलाफ कई बार (जैसे सेकंड) प्लॉट करना चाहता हूं जैसे कि अज़ीमुथ शीर्ष पर परिधि (उत्तर/0 डिग्री/360 डिग्री के साथ) के आसपास प्रदर्शित होता है, और समय को केंद्र से मापा जाता है परिधि। मैंने जो लक्ष्य बनाया है उसका एक स्केच शामिल किया है।

मेरा डेटा numpy arrays के रूप में संग्रहीत किया जाता है। उदाहरण के लिए निम्नलिखित (जो लगभग आकृति के अनुरूप है):

time = np.array([4 ,5 ,6, 7, 10])
print(time)
[ 4 5 6 7 10]

azi = np.array([70 ,100 ,120, 150, 170])
print(azi)
[ 70 100 120 150 170]

p

0
Alexander Peace 31 मार्च 2020, 19:05

1 उत्तर

सबसे बढ़िया उत्तर

एक सर्कल में प्लॉट करने के लिए, एक पोलर प्लॉट का उपयोग करें। कोणों को रेडियन में बदलना चाहिए। set_theta_zero_location के साथ, शुरुआती बिंदु को स्थानांतरित किया जा सकता है (डिफ़ॉल्ट दाईं ओर है)। set_theta_direction(-1) कोणों को दक्षिणावर्त घुमाता है।

import numpy as np
import matplotlib.pyplot as plt

time = np.array([4 ,5 ,6, 7, 10])
azi = np.array([70 ,100 ,120, 150, 170])

ax = plt.subplot(111, projection='polar')
ax.plot(azi*np.pi/180, time, color='black', marker='D', markerfacecolor='limegreen')
ax.set_theta_zero_location('N')
ax.set_theta_direction(-1) # clockwise
ax.grid(True)

# ax.set_ylabel('Time', color='crimson')
ax.tick_params(axis='y', colors='crimson')

plt.show()

resulting plot

1
JohanC 31 मार्च 2020, 19:02