自Unix时代开始以来,我有几秒钟的时间.我想用24小时制作它们.到目前为止我的努力是
from __future__ import division
import matplotlib.pyplot as plt
import numpy as np
angles = 2*np.pi*np.random.randint(0,864000,100)/86400
ax = plt.subplot(111, polar=True)
ax.scatter(angles, np.ones(100)*1)
plt.show()
Run Code Online (Sandbox Code Playgroud)
这给出了以下内容

但是,这并不是我想要的.
0.2, 0.4, ...?from __future__ import division
import matplotlib.pyplot as plt
import numpy as np
from numpy import pi
angles = 2*pi*np.random.randint(0,864000,100)/86400
ax = plt.subplot(111, polar=True)
ax.scatter(angles, np.ones(100)*1)
# suppress the radial labels
plt.setp(ax.get_yticklabels(), visible=False)
# set the circumference labels
ax.set_xticks(np.linspace(0, 2*pi, 24, endpoint=False))
ax.set_xticklabels(range(24))
# make the labels go clockwise
ax.set_theta_direction(-1)
# place 0 at the top
ax.set_theta_offset(pi/2.0)
# plt.grid('off')
# put the points on the circumference
plt.ylim(0,1)
plt.show()
Run Code Online (Sandbox Code Playgroud)

或者,为了更好地利用时钟的面,你可以scatter用一个bar情节取代情节(灵感来自这个代码高尔夫答案):
# ax.scatter(angles, np.ones(100)*1, marker='_', s=20)
ax.bar(angles, np.full(100, 0.9), width=0.1, bottom=0.0, color='r', linewidth=0)
Run Code Online (Sandbox Code Playgroud)

或者,为了使条形看起来更像刻度线,您可以设置bottom=0.89:
ax.bar(angles, np.full(100, 0.9), width=0.05, bottom=0.89, color='r', linewidth=0)
Run Code Online (Sandbox Code Playgroud)

| 归档时间: |
|
| 查看次数: |
1592 次 |
| 最近记录: |