我试图绘制一些时间间隔:
import matplotlib.pyplot as plt
plt.hlines(1,v1,v2)
myFmt = DateFormatter('%H:%M:%S')
ax.xaxis.set_major_formatter(myFmt)
ax.xaxis.set_major_locator(SecondLocator(interval=2000))
,其中
v1=numpy.datetime64('2017-09-13T05:12:56.089000000')
v2=numpy.datetime64('2017-09-13T11:51:30.089000000')
然后我得到: 这非常好。 但是,为了便于阅读,我想在圆形时间内打勾,例如: 05.00,06.00 ...... 但是,我仍然需要准确,所以我需要在图中添加相同格式的开始和结束的确切时间。 一般的解决方案会很棒,因为我可能需要在几个月后重复这些技巧等等。
答案 0 :(得分:1)
为了获得每小时滴答,<div class="wrapper">
<header class="header">
</header><!-- .header-->
<div class="middle">
<div class="container">
<main class="content">
</main><!-- .content -->
</div><!-- .container-->
<aside class="left-sidebar">
<nav class="nav">
</nav>
</aside><!-- .left-sidebar -->
</div><!-- .middle-->
<footer class="footer">
</footer><!-- .footer -->
</div><!-- .wrapper -->
.nav {
background: #d2d3d5;
height: 60px;
}
.header {
height: 30px;
background: #1378a9;
text-align: right;
color: white;
}
.middle {
border-left: 640px solid #B5E3FF;
position: relative;
}
.middle:after {
display: table;
clear: both;
content: '';
}
.container {
width: 100%;
float: left;
overflow: hidden;
margin-right: -100%;
}
.content {
padding: 0 20px;
padding-bottom:40px;
}
.left-sidebar {
float: left;
width: 640px;
position: relative;
background: #ebf2f5;
left: -640px;
min-height: 700px;
border-right: 1px solid #1378a9;
}
.footer {
height: 40px;
background: #1378a9;
text-align: right;
color: white;
position:absolute;
bottom:0;
width: 100%;
}
肯定不是最佳选择。而是使用SecondLocator
HourLocator
Anno0tating有点困难,您需要将datetime64转换为datetime,以便可以使用与轴相同的格式化程序对其进行格式化。 (有关日期时间转换的更多信息,请参阅例如this useful post)
import numpy as np
import matplotlib.dates as mdates
import matplotlib.pyplot as plt
v1=np.datetime64('2017-09-13T05:12:56.089000000')
v2=np.datetime64('2017-09-13T11:51:30.089000000')
plt.hlines(1,v1,v2)
myFmt = mdates.DateFormatter('%H:%M:%S')
plt.gca().xaxis.set_major_formatter(myFmt)
plt.gca().xaxis.set_major_locator(mdates.HourLocator())
plt.show()