예제 #1
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()
예제 #2
0
파일: drawxnqx.py 프로젝트: dgiot/dgiot
>>>>>>> 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")
    par2.scatter(flow1, effect, label="EQ离散数据")
    par1.set_ylim(0, pm * 2)
    par2.set_ylim(0, nm + 5)
    host.legend()
    par2.axis['right2'].major_ticklabels.set_color(p3.get_color())  # 刻度值颜色
    par2.axis['right2'].set_axisline_style('-|>', size=1.5)  # 轴的形状色

=======