Ejemplo n.º 1
0
def show_all():
    fig = plt.figure()
    host = HostAxes(fig, [0.15, 0.1, 0.65, 0.8])
    par1 = ParasiteAxes(host, sharex=host)
    par2 = ParasiteAxes(host, sharex=host)
    host.parasites.append(par1)
    host.parasites.append(par2)

    host.set_ylabel("Temperature")
    host.set_xlabel("Datetime")
    host.axis["right"].set_visible(False)
    host.set_ylim(25, 35)

    par1.set_ylabel("eCO2")
    par1.axis["right"].set_visible(True)
    par1.axis["right"].major_ticklabels.set_visible(True)
    par1.axis["right"].label.set_visible(True)
    par1.set_ylim(400, 2000)

    par2.set_ylabel("TVOC")
    new_axisline = par2.get_grid_helper().new_fixed_axis
    par2.axis["right2"] = new_axisline(loc="right", axes=par2, offset=(60, 0))
    par2.set_ylim(0, 1000)

    fig.add_axes(host)

    p1, = host.plot(temperatures, label="Temperature")
    p2, = par1.plot(eCO2s, label="eCO2")
    p3, = par2.plot(TVOCs, label="TVOC")

    host.axis["left"].label.set_color(p1.get_color())
    par1.axis["right"].label.set_color(p2.get_color())
    par2.axis["right2"].label.set_color(p3.get_color())

    plt.show()
Ejemplo n.º 2
0
par1 = ParasiteAxes(host, sharex=host)
host.parasites.append(par1)
host.set_ylabel("Density")
host.set_xlabel("Distance")

host.axis["right"].set_visible(True)
par1.axis["right"].set_visible(True)
par1.set_ylabel("Temperature")

par1.axis["right"].major_ticklabels.set_visible(True)
par1.axis["right"].label.set_visible(True)

fig.add_axes(host)

host.set_xlim(1975, 2010)
host.set_ylim(0, 100)

host.set_xlabel("GDP and Success rate")
host.set_ylabel("GDP per five years (*2*10^10")
par1.set_ylabel("Success Rate (%)")

p1, = host.plot(names, gdp_values, label="GDP")
p2, = par1.plot(names, edu_values, label="Success Rate")

par1.set_ylim(0, 100)

host.legend()

host.axis["left"].label.set_color(p1.get_color())
par1.axis["right"].label.set_color(p2.get_color())
Ejemplo n.º 3
0
        #elif i == 2 :
        #elif i < len(values) - 1 :
        #p1, = par1.plot(values[i], zcs[i], label= os.path.splitext(os.path.basename(filenames[i + 1]))[0])
        #    p1, = par1.plot(values[i], zcs[i], label= "RDI")
    elif i == 3:
        host.plot(values[i],
                  zcs[i],
                  label="L-Architect PAD",
                  linewidth=0.8,
                  color=palettes["L-Architect"])

#par1.set_ylim(0, 16)
#par2.set_ylim(1, 65)

host.set_ylim(0, 16)
host.set_xlim(0, MAX_X)
host.legend()

#p1
#maxPoints =
if max(values[2]) < 3:
    par1.set_xlim(0, 8)

#remove decima if it is integer
#pointsXlabels = par1.get_xticks().tolist()
#pointsTicklabels = []
#for lab in pointsXlabels:
#    newtick = float(lab)
#    newtickstring = str(float(newtick))
#    if newtick.is_integer() :
Ejemplo n.º 4
0
    host.axis["right"].set_visible(False)
    par1.axis["right"].set_visible(True)
    par1.set_ylabel("Temperature")

    par1.axis["right"].major_ticklabels.set_visible(True)
    par1.axis["right"].label.set_visible(True)

    par2.set_ylabel("Velocity")
    offset = (60, 0)
    new_axisline = par2._grid_helper.new_fixed_axis
    par2.axis["right2"] = new_axisline(loc="right", axes=par2, offset=offset)

    fig.add_axes(host)

    host.set_xlim(0, 2)
    host.set_ylim(0, 2)

    host.set_xlabel("Distance")
    host.set_ylabel("Density")
    par1.set_ylabel("Temperature")

    p1, = host.plot([0, 1, 2], [0, 1, 2], label="Density")
    p2, = par1.plot([0, 1, 2], [0, 3, 2], label="Temperature")
    p3, = par2.plot([0, 1, 2], [50, 30, 15], label="Velocity")

    par1.set_ylim(0, 4)
    par2.set_ylim(1, 65)

    host.legend()

    host.axis["left"].label.set_color(p1.get_color())
Ejemplo n.º 5
0
def draw_point_fcst(t2m=None,
                    u10m=None,
                    v10m=None,
                    rn=None,
                    model=None,
                    output_dir=None,
                    points=None,
                    extra_info=None):

    plt.rcParams['font.sans-serif'] = ['SimHei']  # 步骤一(替换sans-serif字体)
    plt.rcParams['axes.unicode_minus'] = False  # 步骤二(解决坐标轴负数的负号显示问题)
    if (sys.platform[0:3] == 'lin'):
        locale.setlocale(locale.LC_CTYPE, 'zh_CN.utf8')
    if (sys.platform[0:3] == 'win'):
        locale.setlocale(locale.LC_CTYPE, 'chinese')

    initTime = pd.to_datetime(str(
        t2m['forecast_reference_time'].values)).replace(
            tzinfo=None).to_pydatetime()

    # draw figure
    fig = plt.figure(figsize=(16, 4.5))
    ax_t2m = HostAxes(fig, [0.1, 0.28, .8, .62])
    ax_rn = ParasiteAxes(ax_t2m, sharex=ax_t2m)
    #其他信息

    #append axes
    ax_t2m.parasites.append(ax_rn)

    #invisible right axis of ax
    ax_t2m.axis['right'].set_visible(False)
    ax_t2m.axis['right'].set_visible(False)
    ax_rn.axis['right'].set_visible(True)
    ax_rn.axis['right'].major_ticklabels.set_visible(True)
    ax_rn.axis['right'].label.set_visible(True)
    #set label for axis
    ax_t2m.set_ylabel('温度($^\circ$C)', fontsize=100)
    ax_rn.set_ylabel('降水(mm)', fontsize=100)
    fig.add_axes(ax_t2m)

    # draw main figure
    #2米温度——————————————————————————————————————
    if (model == '中央台指导'):
        model = '智能网格'
    utl.add_public_title_sta(title=model + '预报 ' + extra_info['point_name'] +
                             ' [' + str(points['lon'][0]) + ',' +
                             str(points['lat'][0]) + ']',
                             initTime=initTime,
                             fontsize=21)
    for ifhour in t2m['forecast_period'].values:
        if (ifhour == t2m['forecast_period'].values[0]):
            t2m_t = (initTime + timedelta(hours=ifhour))
        else:
            t2m_t = np.append(t2m_t, (initTime + timedelta(hours=ifhour)))

    curve_t2m = ax_t2m.plot(t2m_t,
                            np.squeeze(t2m['data'].values),
                            c='#FF6600',
                            linewidth=3,
                            label='2m温度')
    ax_t2m.set_xlim(t2m_t[0], t2m_t[-1])
    ax_t2m.set_ylim(
        math.floor(t2m['data'].values.min() / 5) * 5 - 2,
        math.ceil(t2m['data'].values.max() / 5) * 5)
    #降水——————————————————————————————————————
    for ifhour in rn['forecast_period'].values:
        if (ifhour == rn['forecast_period'].values[0]):
            rn_t = (initTime + timedelta(hours=ifhour))
        else:
            rn_t = np.append(rn_t, (initTime + timedelta(hours=ifhour)))
    mask = (rn['data'] < 999)
    rn = rn['data'].where(mask)
    ax_rn.bar(rn_t,
              np.squeeze(rn.values),
              width=0.1,
              color='#00008B',
              label=str(
                  int(rn['forecast_period'].values[1] -
                      rn['forecast_period'].values[0])) + '小时降水',
              alpha=0.5)
    #curve_rn=ax_rn.plot(rn_t, np.squeeze(rn['data'].values), c='#40C4FF',linewidth=3)

    ax_rn.set_ylim(0, np.nanmax(np.append(10, np.squeeze(rn.values))))
    ###

    xaxis_intaval = mpl.dates.HourLocator(byhour=(8, 20))  #单位是小时
    ax_t2m.xaxis.set_major_locator(xaxis_intaval)
    # add legend
    ax_t2m.legend(fontsize=15, loc='upper right')
    ax_t2m.tick_params(length=10)
    ax_t2m.tick_params(axis='y', labelsize=100)
    ax_t2m.set_xticklabels([' '])
    miloc = mpl.dates.HourLocator(byhour=(8, 11, 14, 17, 20, 23, 2, 5))  #单位是小时
    ax_t2m.xaxis.set_minor_locator(miloc)
    yminorLocator = MultipleLocator(1)  #将此y轴次刻度标签设置为1的倍数
    ax_t2m.yaxis.set_minor_locator(yminorLocator)
    ymajorLocator = MultipleLocator(5)  #将此y轴次刻度标签设置为1的倍数
    ax_t2m.yaxis.set_major_locator(ymajorLocator)

    ax_t2m.grid(axis='x', which='minor', ls='--')
    ax_t2m.axis['left'].label.set_fontsize(15)
    ax_t2m.axis['left'].major_ticklabels.set_fontsize(15)
    ax_rn.axis['right'].label.set_fontsize(15)
    ax_rn.axis['right'].major_ticklabels.set_fontsize(15)
    #10米风——————————————————————————————————————
    ax_uv = plt.axes([0.1, 0.16, .8, .12])
    for ifhour in u10m['forecast_period'].values:
        if (ifhour == u10m['forecast_period'].values[0]):
            uv_t = (initTime + timedelta(hours=ifhour))
        else:
            uv_t = np.append(uv_t, (initTime + timedelta(hours=ifhour)))

    wsp = (u10m**2 + v10m**2)**0.5
    #curve_uv=ax_uv.plot(uv_t, np.squeeze(wsp['data'].values), c='#696969',linewidth=3,label='10m风')

    ax_uv.barbs(uv_t,
                np.zeros(len(uv_t)),
                np.squeeze(u10m['data'].values),
                np.squeeze(v10m['data'].values),
                fill_empty=True,
                color='gray',
                barb_increments={
                    'half': 2,
                    'full': 4,
                    'flag': 20
                },
                length=5.8,
                linewidth=1.5,
                zorder=100)
    ax_uv.set_ylim(-1, 1)
    ax_uv.set_xlim(uv_t[0], uv_t[-1])
    #ax_uv.axis('off')
    ax_uv.set_yticklabels([' '])
    #logo
    utl.add_logo_extra_in_axes(pos=[0.87, 0.00, .1, .1],
                               which='nmc',
                               size='Xlarge')

    #开启自适应
    xaxis_intaval = mpl.dates.HourLocator(byhour=(8, 20))  #单位是小时
    ax_uv.xaxis.set_major_locator(xaxis_intaval)
    ax_uv.tick_params(length=5, axis='x')
    ax_uv.tick_params(length=0, axis='y')
    miloc = mpl.dates.HourLocator(byhour=(8, 11, 14, 17, 20, 23, 2, 5))  #单位是小时
    ax_uv.xaxis.set_minor_locator(miloc)
    ax_uv.grid(axis='x', which='both', ls='--')
    ax_uv.set_ylabel('10m风', fontsize=15)

    xstklbls = mpl.dates.DateFormatter('%m月%d日%H时')
    for label in ax_uv.get_xticklabels():
        label.set_rotation(30)
        label.set_horizontalalignment('center')
    ax_uv.tick_params(axis='x', labelsize=15)

    #出图——————————————————————————————————————————————————————————

    if (output_dir != None):
        isExists = os.path.exists(output_dir)
        if not isExists:
            os.makedirs(output_dir)

        output_dir2 = output_dir + model + '_起报时间_' + initTime.strftime(
            "%Y年%m月%d日%H时") + '/'
        if (os.path.exists(output_dir2) == False):
            os.makedirs(output_dir2)

        plt.savefig(output_dir2 + model + '_' + extra_info['point_name'] +
                    '_' + extra_info['output_head_name'] +
                    initTime.strftime("%Y%m%d%H") + '00' +
                    extra_info['output_tail_name'] + '.jpg',
                    dpi=200,
                    bbox_inches='tight')
    else:
        plt.show()
Ejemplo n.º 6
0
def plot_multi_y(line_series_list, line_label_list, scatter_series_list,
                 scatter_label_list):
    """
    第一条line做主轴,散点与主轴共用Y轴
    :param line_series_list:
    :param line_label_list:
    :param scatter_series_list:
    :param scatter_label_list:
    :return:
    """
    color_list = ['red', 'green', 'blue', 'yellow', 'pink', 'black', 'orange']
    fig = plt.figure(1)
    host_axes = HostAxes(fig, [0.1, 0.1, 0.6, 0.8])
    fig.add_axes(host_axes)
    host_axes.set_ylabel(line_label_list[0])
    host_axes.axis['right'].set_visible(False)
    host_axes.set_ylim(
        min(line_series_list[0][1]) * 0.9,
        max(line_series_list[0][1]) * 1.1)
    host_axes.plot(line_series_list[0][0],
                   line_series_list[0][1],
                   label=line_label_list[0],
                   color=color_list[0])

    label_offset = 0
    # line_axes = []
    for i in range(len(line_series_list) - 1):
        axes = ParasiteAxes(host_axes, sharex=host_axes)
        axes.set_ylabel(line_label_list[i + 1])
        axis_line = axes.get_grid_helper().new_fixed_axis

        axes.axis['right' + str(label_offset)] = axis_line(
            loc='right', axes=axes, offset=(label_offset, 0))
        axes.axis['right' + str(label_offset)].label.set_color(color_list[i +
                                                                          1])
        axes.axis['right' + str(label_offset)].major_ticks.set_color(
            color_list[i + 1])
        axes.axis['right' + str(label_offset)].major_ticklabels.set_color(
            color_list[i + 1])
        axes.axis['right' + str(label_offset)].line.set_color(color_list[i +
                                                                         1])
        label_offset += 40

        axes.set_ylim(
            min(line_series_list[i + 1][1]) * 0.9,
            max(line_series_list[i + 1][1]) * 1.1)

        axes.plot(line_series_list[i + 1][0],
                  line_series_list[i + 1][1],
                  label=line_label_list[i + 1],
                  color=color_list[i + 1])

        # line_axes.append(axes)
        host_axes.parasites.append(axes)

    # scatter_axes = []
    for i in range(len(scatter_series_list)):  # 与主轴共用Y轴
        # axes = ParasiteAxes(host_axes, sharex=host_axes)
        # axes.set_ylabel(scatter_label_list[i])
        # axis_line = axes.get_grid_helper().new_fixed_axis

        # axes.axis['right' + str(label_offset)] = axis_line(loc='right', axes=axes, offset=(label_offset, 0))
        color_item = color_list[len(line_label_list) + i + 1]
        # axes.axis['right' + str(label_offset)].label.set_color(color_item)
        # axes.axis['right' + str(label_offset)].major_ticks.set_color(color_item)
        # axes.axis['right' + str(label_offset)].major_ticklabels.set_color(color_item)
        # axes.axis['right' + str(label_offset)].line.set_color(color_item)
        # label_offset += 40

        # axes.set_ylim(min(scatter_series_list[i][1]), max(scatter_series_list[i][1]))

        host_axes.scatter(scatter_series_list[i][0],
                          scatter_series_list[i][1],
                          label=scatter_label_list[i],
                          color=color_item)
        # scatter_axes.append(axes)
        # host_axes.parasites.append(axes)

    host_axes.legend()
    plt.show()
Ejemplo n.º 7
0
    par1.axis['right'].major_ticklabels.set_visible(True)
    par1.axis['right'].label.set_visible(True)

<<<<<<< HEAD
    par2.set_ylabel('扬程')
=======
    par2.set_ylabel('效率(E)(%)', color="blue")
>>>>>>> f5b55f5735c94ec9573668b5d56b78a8eef2e8f7
    offset = (60, 0)
    new_axisline = par2._grid_helper.new_fixed_axis
    par2.axis['right2'] = new_axisline(loc='right', axes=par2, offset=offset)
    fig.add_axes(host)
    host.set_xlim(0, fm + 1)
<<<<<<< HEAD
    host.set_ylim(0, hm + 5)

    host.set_xlabel('流量')
    host.set_ylabel('功率')
    host.set_ylabel('效率')
    x = np.linspace(0, fm, 500)
    y = headparameters[0] * x ** 2 + headparameters[1] * x + headparameters[2]
    p1, = host.plot(x, y, label="HQ拟合曲线", color="black")
    host.scatter(flow1, head1, label="HQ离散数据")
    x1 = np.linspace(0, fm, 500)
    y1 = powerparameters[0] * x ** 2 + powerparameters[1] * x + powerparameters[2]
    p2, = par1.plot(x, y1, label="PQ拟合曲线", color="red")
    par1.scatter(flow1, power1, label="PQ离散数据")
    x2 = np.linspace(0, fm, 500)
    y2 = effectparameters[0] * x ** 2 + effectparameters[1] * x + effectparameters[2]
    p3, = par2.plot(x, y2, label="EQ拟合曲线", color="blue")
Ejemplo n.º 8
0
    load_axisline = ax_load.get_grid_helper().new_fixed_axis
    #cp_axisline = ax_cp.get_grid_helper().new_fixed_axis
    #wear_axisline = ax_wear.get_grid_helper().new_fixed_axis

    ax_load.axis['right2'] = load_axisline(loc='right',
                                           axes=ax_load,
                                           offset=(70, 0))
    #ax_cp.axis['right3'] = cp_axisline(loc='right', axes=ax_cp, offset=(80,0))
    #ax_wear.axis['right4'] = wear_axisline(loc='right', axes=ax_wear, offset=(120,0))

    fig.add_axes(ax_cof)

    #set limit of x, y
    ax_cof.set_xlim(-3, 21)
    ax_cof.set_ylim(0, 200)

    curve_cof = ax_cof.plot(data[0],
                            data[1],
                            's-',
                            label="Compress Strength",
                            color='black')
    # markerfacecolor='none 標記變成中空
    curve_temp = ax_temp.plot(data[0],
                              data[2],
                              'o-.',
                              label='Porosity',
                              color='red')
    curve_load = ax_load.plot(data[0],
                              data[3],
                              '^-',
Ejemplo n.º 9
0
#host.set_ylabel("F1 score")
#host.set_xlabel("# Filter size")
host.axis["right"].set_visible(False)
#plt.xticks([])
host.axis["top"].major_ticks.set_color('white')
par1.axis["right"].set_visible(True)
#par1.set_ylabel("Runtime")
par1.axis["right"].major_ticklabels.set_visible(True)
par1.axis["right"].label.set_visible(True)
#par2.set_ylabel("Velocity")
#offset = (60, 0)
#new_axisline = par2.get_grid_helper().new_fixed_axis
#par2.axis["right2"] = new_axisline(loc="right", axes=par2, offset=offset)
fig.add_axes(host)
host.set_xlim(0, 80)
host.set_ylim(0.6, 0.8)
host.set_xlabel("Number of filter size")
host.set_ylabel("F1 score")
par1.set_ylabel("Runtime")
#p1, = host.plot([1, 5, 10, 15, 20, 25, 30, 35, 40,50,60,70,80,90,100], [0.66, 0.736, 0.764, 0.778, 0.786, 0.814, 0.786, 0.783, 0.787,0.791,0.789,0.785,0.790,0.792,0.786], 'o-',label="F1 score", linewidth=2.2, color="#59604C")
#p2, = par1.plot([1, 5, 10, 15, 20, 25, 30, 35, 40,50,60,70,80,90,100], [3.52, 3.68, 3.71, 3.72, 3.84, 3.85, 3.87, 3.96, 3.86,3.876,3.83,3.83,3.89,3.97,4.04], '*--', label="Runtime", linewidth=2.2, color="#A35638")
p1, = host.plot([1, 5, 10, 15, 20, 25, 30, 35, 40, 50, 60, 70, 80], [
    0.691, 0.693, 0.710, 0.715, 0.721, 0.727, 0.703, 0.704, 0.705, 0.695,
    0.706, 0.687, 0.679
],
                'o-',
                label="F1 score",
                linewidth=2.2,
                color="#59604C")
p2, = par1.plot([1, 5, 10, 15, 20, 25, 30, 35, 40, 50, 60, 70, 80], [
    5.13, 5.28, 5.33, 5.76, 5.99, 6.01, 6.54, 6.83, 6.99, 7.38, 7.85, 7.97,
Ejemplo n.º 10
0
        p2, = par2.plot(values[i] * 100,
                        zcs[i],
                        label="Occlusion",
                        linewidth=0.8,
                        color=palettes["Occlusion"])

#par1.set_ylim(0, 4)
#par2.set_ylim(1, 65)

host.legend()

par1.axis["top"].major_ticklabels.set_color(p1.get_color())
par2.axis["top2"].major_ticklabels.set_color(p2.get_color())
host.axis["bottom"].major_ticklabels.set_color(h.get_color())

par1.axis["top"].label.set_color(p1.get_color())
par2.axis["top2"].label.set_color(p2.get_color())
host.axis["bottom"].label.set_color(h.get_color())

#host.axis["bottom"].label.set_color(p1.get_color())
host.set_ylim(1.5, MAX_Z)
par1.set_xlim(0, maxPoints)

#fig.set_size_inches(6, 6)
#plt.show()
outfile = "/tmp/padvspointsvsocclu.pdf"
fig.savefig(outfile, bbox_inches='tight', pad_inches=0)

outfile = "/tmp/padvspointsvsocclu.png"
fig.savefig(outfile)
Ejemplo n.º 11
0
        #p1, = par1.plot(values[i], zcs[i], label= os.path.splitext(os.path.basename(filenames[i + 1]))[0])
    #    p1, = par1.plot(values[i], zcs[i], label= "RDI")
    else :
        p1, = par1.plot(values[i], zcs[i], label= "number of returns")
 
#par1.set_ylim(0, 4)
#par2.set_ylim(1, 65)

host.legend()


par1.axis["top"].label.set_color(p1.get_color())
#par2.axis["top2"].label.set_color(p2.get_color())
#host.axis["bottom"].label.set_color(p1.get_color())

#title = filenames[1]


host.set_ylim(minZ, maxZ)
#host.set_xlim(0, 0.4)
#par1.set_xlim(0, 100)
#host.set_xlim(minZ, maxZ)

#plt.show()
outfile = "/tmp/padvspoints.pdf"
fig.savefig(outfile)

outfile = "/tmp/padvspoints.png"
fig.savefig(outfile)

Ejemplo n.º 12
0
fig1 = plt.figure(1, figsize=(2.5, 1.2))

host = HostAxes(fig1, [0.15, 0.1, 0.65, 0.8])
par1 = ParasiteAxes(host, sharex=host)
host.parasites.append(par1)

host.axis["right"].set_visible(False)
par1.axis["right"].set_visible(True)

par1.axis["right"].major_ticklabels.set_visible(True)
par1.axis["right"].label.set_visible(True)
fig1.add_axes(host)

host.set_xlim(np.pi / 2, np.pi)
host.set_ylim(0.29, 0.61)
host.set_xticks([1.57, 1.8, 2.0, 2.2, 2.4, 2.6, 2.8, 3.0, 3.1415])
host.set_xticklabels(
    ['$\\pi/2$', '1.8', '2.0', '2.2', '2.4', '2.6', '2.8', '3.0', '$\\pi$'])

host.set_xlabel("$\\theta_c$")
host.set_ylabel("$\\theta_b^*$")
par1.set_ylabel("min$_{\\theta_b} \\varepsilon$ $(\\times 10^{-3})$")

p1, = host.plot(C[0, :],
                X[Z.argmin(axis=0), 0],
                label="$\\theta_b^*$",
                color='#1f77b4')
p2, = par1.plot(C[0, :],
                Z.min(axis=0) * 1000,
                label="min$_{\\theta_b} \\varepsilon$",
                                            max(torque_multi_gear))
                line_torque_multi_gear = ax_torque_multi_gear.plot(
                    time[order],
                    torque_multi_gear,
                    linestyle=line_style[vehicle_number[order]],
                    color=line_color[temperature_target[order]])

        gear_max = max(gear_max, max(gear[order]))
        power_max = max(power_max, max(power))
        lines_set = lines_set + line_power

    legend_set = [line.get_label() for line in lines_set]
    ax_power.legend(lines_set, legend_set, loc='upper left')
    ax_power.set_xlabel('Time(s)')
    ax_power.set_ylabel('Power(kw)')
    ax_power.set_ylim(-20, 2 * power_max)
    ax_power.set_yticks([i * 20 for i in range(0, int(power_max / 20 + 1))])
    ax_gear.set_ylabel('Gear/Gear ratio')
    ax_gear.set_ylim(-gear_max, gear_max + 1)
    ax_gear.set_yticks([i for i in range(0, int(gear_max) + 1)])
    if gear_max > 10:  # if it is gear ratio, plot torque*gear
        ax_torque_multi_gear.set_ylabel('Torque*gear ratio(Nm)')
        ax_torque_multi_gear.set_ylim(-torque_mutil_gear_max - 50,
                                      torque_mutil_gear_max)
        ax_torque_multi_gear.set_yticks(
            [i * 500 for i in range(0,
                                    int(torque_mutil_gear_max / 500) + 2)])
        ax_gear.set_ylim(0, 2 * gear_max)
        ax_power.legend(lines_set, legend_set, loc='upper right')
    plt.savefig(fig2_name + '.png', transparent=True)
    # plt.show()
def plot_line_(name, x, y1, y2, y3):
    #fig = plt.figure(figsize=(7,5))  #figsize默认为4,4(图像尺寸),facecolor="blue"
    fig = plt.figure(1)  #figsize默认为4,4(图像尺寸),facecolor="blue"
    ax = HostAxes(
        fig, [0.15, 0.1, 0.7, 0.8
              ])  #用[left, bottom, weight, height]的方式定义axes,0 <= l,b,w,h <= 1
    ax_ndvi = ParasiteAxes(ax, sharex=ax)
    ax_t = ParasiteAxes(ax, sharex=ax)
    ax_p = ParasiteAxes(ax, sharex=ax)

    ax.parasites.append(ax_ndvi)
    ax.parasites.append(ax_p)
    ax.parasites.append(ax_t)

    ax.set_ylim(0.41, 0.75)
    ax.set_xlim(2004.5, 2015.5)
    ax.axis['right'].set_visible(False)
    ax.axis['top'].set_visible(False)
    #    plt.tick_params(top = 'off', right = 'off')
    #ax_ndvi.axis['left1'] = new_axisline(loc='left', axes=ax_ndvi, offset=offset1)
    #ax.axis['left'].set_axisline_style('->',size=2)  #轴的形状色
    ax.axis['left'].line.set_linewidth(3)  #轴宽
    ax.axis['bottom'].line.set_linewidth(3)  #轴宽

    offset1 = (20, 0)
    offset2 = (60, 0)
    ax_t.set_ylim(10, 30)
    ax_p.set_ylim(500, 2500)
    new_axisline = ax_t._grid_helper.new_fixed_axis  # "_grid_helper"与"get_grid_helper()"等价,可以代替  #new_axisline = par2.get_grid_helper().new_fixed_axis  # 用"get_grid_helper()"代替,结果一样,区别目前不清楚
    new_axisline = ax_p._grid_helper.new_fixed_axis
    ax_t.axis['right2'] = new_axisline(loc='right', axes=ax_t, offset=offset1)
    #ax_t.axis['right2'].set_axisline_style('-|>',size=-1)  #轴的形状色
    ax_t.axis['right2'].line.set_linewidth(3)  #轴宽
    ax_t.axis['right2'].set_label(
        'T')  # ax_t.axis['right2'].set_axislabel_direction('-')
    ax_p.axis['right3'] = new_axisline(loc='right', axes=ax_p, offset=offset2)
    #ax_p.axis['right3'].set_axisline_style('->',size=-1)  #轴的形状色
    ax_p.axis['right3'].line.set_linewidth(3)  #轴宽
    ax_p.axis['right3'].set_label('P')

    ax_t.yaxis.set_major_locator(MultipleLocator(2))
    ax_p.yaxis.set_major_locator(MultipleLocator(500))
    ax.xaxis.set_major_locator(
        xmajorLocator
    )  #设置主刻度标签的位置,没有标签文本格式ax.xaxis.set_major_formatter(FormatStrFormatter('%5.1f'))
    ax.yaxis.set_major_locator(ymajorLocator)
    ax.xaxis.set_minor_locator(xminorLocator)  #设置次刻度标签的位置,没有标签文本格式
    ax.xaxis.set_minor_locator(xminorLocator)

    #打开网格
    ax_ndvi.grid(which='minor', color='black',
                 linestyle='--')  #,lw=0.8, alpha=0.5)  # grid setting)  #绘制网格线
    ax_t.grid(which='minor', color='black',
              linestyle='--')  #,lw=0.8, alpha=0.5)  # grid setting)  #绘制网格线
    ax.tick_params(axis='both',
                   which='major',
                   direction='in',
                   width=2,
                   length=lwidth,
                   pad=tick_pad,
                   labelsize=tick_labelsz,
                   grid_linewidth=3)

    ax.set_ylabel('NDVI', font_properties=getChineseFont(80))
    #ax.set_ylabel('NDVI',fontproperties=getChineseFont(100))

    ax_t.tick_params(axis='both',
                     which='both',
                     direction='in',
                     width=3,
                     length=100,
                     pad=18,
                     labelsize=100,
                     grid_linewidth=1)
    ax_p.tick_params(axis='both',
                     which='both',
                     direction='in',
                     width=3,
                     length=100,
                     pad=18,
                     labelsize=100,
                     grid_linewidth=1)

    fig.add_axes(ax)

    ax.set_xlabel('Year')
    p1, = ax.plot(x,
                  y1,
                  label="NDVI",
                  ls=linestyle,
                  lw=lwidth,
                  color=c1,
                  marker=".",
                  ms=16,
                  mfc=c1)
    p2, = ax_t.plot(x,
                    y3,
                    label="Temperature",
                    ls=linestyle,
                    lw=lwidth,
                    color=c2,
                    marker="o",
                    ms=marksize,
                    mfc=c2)
    p3, = ax_p.plot(x,
                    y2,
                    label="Precipitation",
                    ls=linestyle,
                    lw=lwidth,
                    color=c3,
                    marker="o",
                    ms=marksize,
                    mfc=c3)
    #ax.set_xlabel('YEAR')
    #ax.set_ylabel('NDVI')
    plt.legend(loc=1,
               bbox_to_anchor=(0.9, 1.2),
               prop=getChineseFont(12),
               ncol=1,
               frameon=False,
               mode='expend')

    #plt.savefig(r'C:\Users\YeHui\Desktop\GGGGGGGGGGG.jpg')#, dpi=1000)
    plt.show()
def plot_vel_acc_rdis(vel, acc, rdis):
    title_font_dict = {
        'family': 'Times New Roman',
        'color': 'black',
        'weight': 'normal',
        'fontsize': 15
    }

    axis_font_dict = {
        'family': 'Times New Roman',
        'color': 'black',
        'weight': 'normal',
        'fontsize': 30
    }
    legend_font = {
        'family': 'Times New Roman',
        'weight': 'normal',
        'size': 10,
    }
    vel_x = np.array(vel)[:, 0] / 10.
    vel_y = np.array(vel)[:, 1]

    acc_x = np.array(acc)[:, 0] / 10.
    acc_y = np.array(acc)[:, 1]

    rdis_x = np.array(rdis)[:, 0] / 10.
    rdis_y = np.array(rdis)[:, 1]

    fig = plt.figure(figsize=(10, 3.5), dpi=200)

    vel_axes = HostAxes(fig, [0.05, 0.1, 0.8, 0.8])
    acc_axes = ParasiteAxes(vel_axes, sharex=vel_axes)
    rdis_axes = ParasiteAxes(vel_axes, sharex=vel_axes)
    vel_axes.parasites.append(acc_axes)
    vel_axes.parasites.append(rdis_axes)

    vel_axes.set_ylabel('Velocity (m/s)')
    vel_axes.set_xlabel('Time (s)')

    vel_axes.axis['right'].set_visible(False)
    acc_axes.axis['right'].set_visible(True)

    acc_axes.set_ylabel('Acceleration (m/s^2)')

    acc_axes.axis['right'].major_ticklabels.set_visible(True)
    acc_axes.axis['right'].label.set_visible(True)

    rdis_axes.set_ylabel('Relative distance (m)')
    offset = (60, 0)
    new_axisline = rdis_axes._grid_helper.new_fixed_axis
    rdis_axes.axis['right2'] = new_axisline(loc='right',
                                            axes=rdis_axes,
                                            offset=offset)

    fig.add_axes(vel_axes)

    p1, = vel_axes.plot(vel_x, vel_y, label="Vel", linewidth=2)
    p2, = acc_axes.plot(acc_x, acc_y, label="Acc", linewidth=2)
    p3, = rdis_axes.plot(rdis_x, rdis_y, label="RD", linewidth=2)

    vel_axes.legend(prop=legend_font)

    vel_axes.set_ylim(0, np.max(vel_y) + 1)
    vel_axes.set_xlim(0, np.max(vel_x))
    rdis_axes.set_ylim(0, np.max(rdis_y) + 1)

    # plt.plot(vel_x, vel_y, color="green", label="Velocity", linewidth=2)
    # plt.ylabel('Velocity (m/s)', fontdict=axis_font_dict)
    #
    # plt.plot(acc_x, acc_y, color="orange", label="Acceleration", linewidth=2, secondary_y=True)
    # plt.ylabel('Acceleration (m/s^2)', fontdict=axis_font_dict)
    #

    plt.title('Kinematic information of host vehicle',
              fontdict=title_font_dict)
    # plt.xlabel('Time (s)', fontdict=axis_font_dict)
    # plt.ylabel('Likelihood', fontdict=axis_font_dict)
    # plt.tick_params(labelsize=20)
    plt.legend(prop=legend_font)

    # plt.ylim(0., 1.)
    # left, right = plt.xlim()
    # plt.xlim(0., right)
    plt.show()
    pass
Ejemplo n.º 16
0
host.axis["right"].set_visible(False)
par1.axis["right"].set_visible(True)
par1.set_ylabel("Temperature")

par1.axis["right"].major_ticklabels.set_visible(True)
par1.axis["right"].label.set_visible(True)

par2.set_ylabel("Velocity")
offset = (60, 0)
new_axisline = par2._grid_helper.new_fixed_axis
par2.axis["right2"] = new_axisline(loc="right", axes=par2, offset=offset)

fig.add_axes(host)

host.set_xlim(0, 2)
host.set_ylim(0, 2)

host.set_xlabel("Distance")
host.set_ylabel("Density")
par1.set_ylabel("Temperature")

p1, = host.plot([0, 1, 2], [0, 1, 2], label="Density")
p2, = par1.plot([0, 1, 2], [0, 3, 2], label="Temperature")
p3, = par2.plot([0, 1, 2], [50, 30, 15], label="Velocity")

par1.set_ylim(0, 4)
par2.set_ylim(1, 65)

host.legend()

host.axis["left"].label.set_color(p1.get_color())
Ejemplo n.º 17
0
        h, = host.plot(values[i], zcs[i], label= "PAD", linewidth=0.8)
    elif i < len(values) - 1 :
        #p1, = par1.plot(values[i], zcs[i], label= os.path.splitext(os.path.basename(filenames[i + 1]))[0])
        p1, = par1.plot(values[i], zcs[i], label= "Nb of returns", linewidth=0.8)
    else :
        p2, = par2.plot(values[i]*100, zcs[i], label= "Occlusion)", linewidth=0.8)
 
#par1.set_ylim(0, 4)
#par2.set_ylim(1, 65)

host.legend()


par1.axis["top"].major_ticklabels.set_color(p1.get_color())
par2.axis["top2"].major_ticklabels.set_color(p2.get_color())
host.axis["bottom"].major_ticklabels.set_color(h.get_color())

#host.axis["bottom"].label.set_color(p1.get_color())

#host.axis["bottom"].label.set_color(p1.get_color())
host.set_ylim(1.5, maxZ)

#fig.set_size_inches(6, 6)
#plt.show()
outfile = "/tmp/padvspointsvsocclu.pdf"
fig.savefig(outfile, bbox_inches = 'tight', pad_inches = 0)

outfile = "/tmp/padvspointsvsocclu.png"
fig.savefig(outfile)