小编fid*_*tas的帖子

将timedelta转换为浮点数

我从减去两个日期时间得到了一个timedelta对象.我需要将此值作为浮点进行进一步计算.我发现的所有内容都可以使用浮点计算,但结果仍然是timedelta对象.

time_d = datetime_1 - datetime_2
time_d_float = float(time_d)
Run Code Online (Sandbox Code Playgroud)

不起作用.

python floating-point datetime timedelta python-2.7

44
推荐指数
3
解决办法
5万
查看次数

matplotlib axes.set_aspect('equal')的行为与预期不符

我需要matplotlib中的一个数字,其中两个轴的长度始终相同.为此,我使用"相等"选项.在大多数情况下,它工作得很好,我得到了预期的结果(见图1),但是当y轴的值远高于x时,该图显示了一个意外的行为(见图2).有谁知道matplotlib的这种行为?

Danke,Jörg

        host = SubplotHost(fig, 111)
        try:
            min_x_val = min(x for x in self.x_values if x is not None)
            max_x_val = max(self.x_values)
        except ValueError:
            return

        max_y_val = list()
        for n, evaluator in enumerate(self.cleaned_evaluators):
            max_y_val.append(max(self.y_values[n]))

        # axis settings
        host.axis['left'].label.set_fontsize('small')
        host.axis['left'].major_ticklabels.set_fontsize('small')
        host.axis['bottom'].label.set_fontsize('small')
        host.axis['bottom'].major_ticklabels.set_fontsize('small')
        host.axis['bottom'].major_ticklabels.set_rotation(0)
        host.set_ylabel(y_label)
        host.set_xlabel(x_label)


        host.set_xlim(0, max_x_val)
        host.set_ylim(0, max_y_val)

        host.minorticks_on()
        host.toggle_axisline(False)
        host.axes.set_aspect('equal')
        host.grid(True, alpha=0.4)

        return fig
Run Code Online (Sandbox Code Playgroud)

图1:

当它工作

图2:

当它不起作用

python axes matplotlib

6
推荐指数
1
解决办法
8013
查看次数

将第二轴添加到极坐标图中

我尝试在一个图中绘制两个极坐标图.见下面的代码:

fig = super(PlotWindPowerDensity, self).get_figure()
    rect = [0.1, 0.1, 0.8, 0.8]
    ax = WindSpeedDirectionAxes(fig, rect)

    self.values_dict = collections.OrderedDict(sorted(self.values_dict.items()))
    values = self.values_dict.items()
    di, wpd = zip(*values)
    wpd = np.array(wpd).astype(np.double)
    wpdmask = np.isfinite(wpd)
    theta = self.radar_factory(int(len(wpd)))

    # spider plot
    ax.plot(theta[wpdmask], wpd[wpdmask], color = 'b', alpha = 0.5)
    ax.fill(theta[wpdmask], wpd[wpdmask], facecolor = 'b', alpha = 0.5)

    # bar plot
    ax.plot_bar(table=self.table, sectors=self.sectors, speedbins=self.wpdbins, option='wind_power_density', colorfn=get_sequential_colors)

    fig.add_axes(ax)
    return fig
Run Code Online (Sandbox Code Playgroud)

结果到现在为止

条形的长度是数据库(该扇区的采样点数).条形图的颜色显示相应扇区中某些值区(例如2.5-5 m/s)的频率(蓝色:低,红色:高).蓝蜘蛛图显示每个扇区的平均值.

在所示的图中,每个图的值是相似的,但这种情况很少见.我需要将第二个绘图分配给另一个轴并在另一个方向上显示该轴.

编辑:

在乔的好答案之后,我得到了这个数字的结果. 临时结果 这几乎是我想要实现的一切.但有些观点我无法弄清楚.

  1. 该图用于动态变化的数据库.因此,我需要一种动态的方式来获得圆圈的相同位置.直到现在我解决它:

    start, end = ax2.get_ylim()
    ax2.yaxis.set_ticks(np.arange(0, end, end / len(ax.yaxis.get_ticklocs()))) …
    Run Code Online (Sandbox Code Playgroud)

python matplotlib multiple-axes

6
推荐指数
1
解决办法
2090
查看次数