Matplotlib:时间轴和限制

时间:2017-11-14 16:18:01

标签: python numpy datetime matplotlib plot

我有一个matplotlib图,其中x数据是Pandas DateTimeIndex。

用户可以使用滚轮缩放x轴。这些限制重新计算如下:

lines = ax.get_lines()
y_lim = np.inf, -np.inf
for line in lines:
    xd = line.get_xdata()
    yd = line.get_ydata()
    y_displayed = yd[((xd > limits[0]) & (xd < limits[1]))]
    y_lim = min(np.min(y_displayed), y_lim[0]), max(np.max(y_displayed), y_lim[1])
ax.set_ylim(y_lim)

这适用于在滚动事件发生的点上或向外缩放x轴。现在我正在尝试重新计算y轴限制以缩放到显示的数据,但无法弄清楚x轴数据和x限制如何相互关联:

TypeError: Invalid type promotion

此操作失败,显示消息numpy.datetime64

据我所知,x数据存储为0001-01-01 00:00,但matplotlib将限制作为浮点数返回,表示自datetime64加1后的天数。我如何把它变成某种形式我可以与<form> <!-- Various input fields --> <?php $delivery_zones = WC_Shipping_Zones::get_zones(); ?> <?php foreach($delivery_zones[1]['shipping_methods'] as $zone_key=>$zone) { ?> <?php $zone_title = mb_strtolower(str_replace(' ', '_', $zone->title)); ?> <label> <?php echo $zone->title ?><span>*</span> <input id="product_shipping_method_<?php echo $zone_title ?>" type="number" name="shipping_method_<?php echo $zone_title ?>" value="<?php echo $edit_action ? get_post_meta($product_id,'_shipping_method_' . $zone_title, true) : ""; ?>"/> </label> <?php } ?> <input type="submit" value="<?php echo $edit_action ? "Save" : "Add"; ?> Product"> </form> 数组进行比较吗?

1 个答案:

答案 0 :(得分:1)

没关系,我一发布问题就把它想出来了:

from matplotlib.dates import num2date

limits = (np.datetime64(num2date(limits[0])), np.datetime64(num2date(limits[1])))