コード例 #1
0
# parasite addition axes, share x
ax_1 = ParasiteAxes(ax_cof, sharex=ax_cof)
ax_1.set_ylabel('deal count')
# ax_2 = ParasiteAxes(ax_cof, sharex=ax_cof)
# ax_2.set_ylabel('average area')

ax_cof.axis['right'].set_visible(False)
ax_cof.axis['top'].set_visible(False)
# ax_cof.set_ylim(2.8, 3.2)

# append axes
ax_cof.parasites.append(ax_1)
# ax_cof.parasites.append(ax_2)

ax1_axisline = ax_1.get_grid_helper().new_fixed_axis
# ax2_axisline = ax_2.get_grid_helper().new_fixed_axis

ax_1.axis['right2'] = ax1_axisline(loc='right', axes=ax_1, offset=(0, 0))
ax_1.axis['right2'].line.set_color('red')
ax_1.axis['right2'].label.set_color('red')
ax_1.axis['right2'].major_ticks.set_color('red')
ax_1.axis['right2'].major_ticklabels.set_color('red')

# ax_2.axis['right'] = ax2_axisline(loc='right', axes=ax_2, offset=(80, 0))
# ax_2.axis['right'].line.set_color('orange')
# ax_2.axis['right'].label.set_color('orange')
# ax_2.axis['right'].major_ticks.set_color('orange')
# ax_2.axis['right'].major_ticklabels.set_color('orange')

fig.add_axes(ax_cof)
コード例 #2
0
ファイル: test.py プロジェクト: cycle13/nmc_met_map-1
#invisible right axis of ax_cof
ax_cof.axis['right'].set_visible(False)
ax_cof.axis['top'].set_visible(False)
ax_temp.axis['right'].set_visible(True)
ax_temp.axis['right'].major_ticklabels.set_visible(True)
ax_temp.axis['right'].label.set_visible(True)

#set label for axis
ax_cof.set_ylabel('cof')
ax_cof.set_xlabel('Distance (m)')
ax_temp.set_ylabel('Temperature')
ax_load.set_ylabel('load')
ax_cp.set_ylabel('CP')
ax_wear.set_ylabel('Wear')

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=(40, 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(0,2)
ax_cof.set_ylim(0,3)
コード例 #3
0
ファイル: ss_systeminfo_fig.py プロジェクト: bfshm/python
ax_data.axis['right'].set_visible(False)
ax_data.axis['top'].set_visible(False)
ax_cpu.axis['right'].set_visible(True)
ax_cpu.axis['right'].major_ticklabels.set_visible(True)
ax_cpu.axis['right'].label.set_visible(True)

#set label for axis
ax_data.set_ylabel('data')
ax_data.set_xlabel('time (s)')
ax_cpu.set_ylabel('cpu')
ax_mem.set_ylabel('memory')
#ax_bitrates.set_ylabel('bitrates')
#ax_wear.set_ylabel('Wear')

#new axsi line
load_axisline = ax_mem.get_grid_helper().new_fixed_axis
#cp_axisline = ax_bitrates.get_grid_helper().new_fixed_axis
#wear_axisline = ax_wear.get_grid_helper().new_fixed_axis

#axsi line padding on the right
ax_mem.axis['right2'] = load_axisline(loc='right', axes=ax_mem, offset=(40, 0))
#ax_bitrates.axis['right3'] = cp_axisline(loc='right', axes=ax_bitrates, offset=(80,0))
#ax_wear.axis['right4'] = wear_axisline(loc='right', axes=ax_wear, offset=(120,0))

#add host axes to fig
fig.add_axes(ax_data)

#plot fig####################################
#curve_data, = ax_data.plot(times, data, label="data", color='green')
width = 0.9
curve_data = ax_data.bar(range(len(times)),
コード例 #4
0
host.parasites.append(par1)
host.parasites.append(par2)

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

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.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, 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")
コード例 #5
0
def draw_city(city):
    select = "SELECT so2, no2, co, time_point FROM day_data WHERE cityname='" + city + "'" + "AND time_point Between '2019-02-01' AND '2019-03-01'"

    cur.execute(select)
    all_data = cur.fetchall()

    # 防止查不到数据

    if len(all_data) != 0:

        # 准备数据

        so2 = []
        no2 = []
        co = []
        time_point = []

        # 准备标签

        for data in all_data:
            so2.append(int(data[0]))
            no2.append(int(data[1]))
            co.append(float(data[2]))
            time_point.append(str(data[3]))

        # 准备字体

        my_font = fm.FontProperties(
            fname="F:\\Project\\Environment\\web\\php\\font\\simsun.ttc")
        fontcn = {'family': 'SimSun', 'size': 10}

        # 绘制气温变化
        fig = plt.figure(figsize=(40, 8), dpi=80)

        ax_so2 = HostAxes(
            fig,
            [0, 0, 0.9, 0.9
             ])  # 用[left, bottom, weight, height]的方式定义axes,0 <= l,b,w,h <= 1

        # parasite addtional axes, share x
        ax_no2 = ParasiteAxes(ax_so2, sharex=ax_so2)
        ax_co = ParasiteAxes(ax_so2, sharex=ax_so2)

        ax_so2.parasites.append(ax_no2)
        ax_so2.parasites.append(ax_co)

        # invisible right axis of ax_so2
        ax_so2.axis['right'].set_visible(False)
        ax_so2.axis['top'].set_visible(False)
        ax_no2.axis['right'].set_visible(True)
        ax_no2.axis['right'].major_ticklabels.set_visible(True)
        ax_no2.axis['right'].label.set_visible(True)

        # set label for axis
        ax_so2.set_ylabel("so2 μg/m3", fontdict=fontcn)
        ax_so2.set_xlabel("时间", fontdict=fontcn)
        ax_no2.set_ylabel("no2 μg/m3", fontdict=fontcn)
        ax_co.set_ylabel("CO mg/m3", fontdict=fontcn)

        co_axisline = ax_co.get_grid_helper().new_fixed_axis

        ax_co.axis['right2'] = co_axisline(loc='right',
                                           axes=ax_co,
                                           offset=(40, 0))

        fig.add_axes(ax_so2)

        x1 = time_point
        x2 = [i for i in range(0, len(x1))]
        y1 = so2
        y2 = no2
        y3 = co

        ax_so2.plot(x1, y1, label='so2', color='#009966')
        ax_no2.plot(x2, y2, label='no2', color='#FFDE33')
        ax_co.plot(x2, y3, label='co', color='#FF9933')

        ax_so2.legend()

        ax_no2.axis['right'].label.set_color('#FFDE33')
        ax_co.axis['right2'].label.set_color('#FF9933')

        ax_no2.axis['right'].major_ticks.set_color('#FFDE33')
        ax_co.axis['right2'].major_ticks.set_color('#FF9933')

        ax_no2.axis['right'].major_ticklabels.set_color('#FFDE33')
        ax_co.axis['right2'].major_ticklabels.set_color('#FF9933')

        ax_no2.axis['right'].line.set_color('#FFDE33')
        ax_co.axis['right2'].line.set_color('#FF9933')

        # 添加图形标题

        plt.title(city + '日二氧化硫、二氧化氮、一氧化碳浓度变化情况',
                  loc='center',
                  fontproperties=my_font)

        # 保存图片

        plt.savefig("./../../article/image/pollution/" + city + ".png",
                    bbox_inches='tight')

        # 显示图形
        # show ann img
        plt.cla()  # clear fig to show ann img
        saved_img = plt.imread("./../../article/image/pollution/" + city +
                               ".png")

        # keep the origin image size
        dpi = 80.0
        height, width, depth = saved_img.shape
        plt.figure(figsize=(width / dpi, height / dpi))
        plt.axis('off')

        plt.imshow(saved_img)
        plt.show()
コード例 #6
0
ファイル: plot_tools.py プロジェクト: Leonardo-YXH/easytrader
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()
コード例 #7
0
ファイル: fund_investment_plan.py プロジェクト: CatTiger/vnpy
def dym_quantile(n):
    """
        动态分位图
        当前投资已5年内历史数据计算百分位,价格合适购入
    """
    # 这里的计算按一年244个交易日计算
    windows = int(n * 244)  # 将时间取整数
    start_date = dt.datetime(2006, 1, 1)
    end_date = dt.datetime(2020, 4, 1)
    df = dp.load_bar_data('000300', 'XSHG', start_date=start_date, end_data=end_date)
    df_finance = dp.load_finance_data('000300.XSHG', start_date=start_date, end_date=end_date)
    if len(df) == len(df_finance):
        print('yes!!!, len:%s' % len(df))
        df['pe'] = df_finance['pe']
    df['quantile'] = df_finance['pe'].rolling(windows).apply(lambda x: pd.Series(x).rank().iloc[-1] /
                                                                       pd.Series(x).shape[0], raw=True)
    # df['date'] = pd.to_datetime(df['date'])  # 转换时间类型
    # df.set_index(['date'], inplace=True)
    # df.index.name = None  # 去掉索引列名
    df.dropna(inplace=True)

    # 画出适中估值区间

    # plt.figure()
    # 创建第一个画板
    fig = plt.figure(figsize=(16, 9))

    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_xlabel('Date')
    host.set_ylabel('Close')
    host.axis['right'].set_visible(False)

    par1.axis['right'].set_visible(True)
    par1.set_ylabel('%sY Rolling quantile' % n)
    par1.axis['right'].major_ticklabels.set_visible(True)
    par1.axis['right'].label.set_visible(True)

    par2.set_ylabel('PE')
    new_axisline = par2.get_grid_helper().new_fixed_axis  # "_grid_helper"与"get_grid_helper()"等价,可以代替
    par2.axis['right2'] = new_axisline(loc='right', axes=par2, offset=(45, 0))

    fig.add_axes(host)

    df['date'] = pd.to_datetime(df['date'])
    df['date'] = df['date'].apply(lambda x: dates.date2num(x))
    p1, = host.plot(df['date'], df['close'], label="Close")
    p2, = par1.plot(df['date'], df['quantile'], label="Quantile")
    p3, = par2.plot(df['date'], df['pe'], label="PE")

    host.legend()
    # 轴名称,刻度值的颜色
    host.axis['left'].label.set_color(p1.get_color())
    host.xaxis.set_major_locator(ticker.MaxNLocator(math.floor(len(df) / 100)))
    host.xaxis.set_major_formatter(dates.DateFormatter('%Y-%m'))
    par1.axis['right'].label.set_color(p2.get_color())
    par2.axis['right2'].label.set_color(p3.get_color())
    par2.axis['right2'].major_ticklabels.set_color(p3.get_color())  # 刻度值颜色
    par2.axis['right2'].set_axisline_style('-|>', size=1.5)  # 轴的形状色
    par2.axis['right2'].line.set_color(p3.get_color())  # 轴的颜色
    # ax.xaxis.set_major_formatter(dates.DateFormatter('%Y-%m-%d'))

    # df[['quantile', 'close']].plot(secondary_y=['quantile'], figsize=(14, 10), alpha=.8)
    # plt.fill_between(df.index, y1=0.4, y2=0.6, color='blue', alpha=0.7)
    # plt.fill_between(df.index, y1=0.8, y2=1, color='red', alpha=0.7)
    # plt.fill_between(df.index, y1=0.0, y2=0.2, color='green', alpha=0.7)
    # plt.annotate('reasonable zone', (df.index[-1], 0.5))
    # 画出固定PE与收盘价的曲线
    plt.show()
コード例 #8
0
    fig2_name = 'fig2 '
    ax_power = HostAxes(fig2, [0.1, 0.08, 0.7, 0.9])  # generate a main axes
    ax_gear = ParasiteAxes(
        ax_power, sharex=ax_power
    )  # generate a parasite axes of the main axes, sharing the x axis
    ax_torque_multi_gear = ParasiteAxes(ax_power, sharex=ax_power)
    ax_power.parasites.append(
        ax_gear)  # claiming the relation of the main and parasite axes
    ax_power.parasites.append(ax_torque_multi_gear)

    ax_power.axis['right'].set_visible(False)
    ax_gear.axis['right'].set_visible(True)
    ax_gear.axis['right'].major_ticklabels.set_visible(True)
    ax_gear.axis['right'].label.set_visible(True)
    if max(gear[wishing_list[figure_id][0]]) > 10:
        torque_mutil_gear_axisline = ax_torque_multi_gear.get_grid_helper(
        ).new_fixed_axis  # ax_gear is the twin axes, no need to specify like this
        ax_torque_multi_gear.axis['right2'] = torque_mutil_gear_axisline(
            loc='right', axes=ax_torque_multi_gear, offset=(40, 0))
    fig2.add_axes(ax_power)

    for order in wishing_list[
            figure_id]:  # fig name generating, containing the order included
        fig2_name = fig2_name + str(order) + ','
    fig2_name = fig2_name[0:-1]

    gear_max = 0
    power_max = 0
    torque_mutil_gear_max = 0
    lines_set = []
    for wish_id in range(0, len(wishing_list[figure_id])):
        order = wishing_list[figure_id][wish_id]