使用matplotlib增加剧情和标题之间的空间

时间:2019-03-27 12:51:35

标签: python matplotlib

我正在使用以下脚本来生成一些图。问题有时是科学符号与标题重叠。

是否有办法解决该问题,例如将地块向下移一点?

    # init
    u = {}
    o = {}

    # create figure
    fig = plt.figure()

    # x-Axis (timesteps)
    i = np.array(i)

    for key in urbs_values.keys():
        # y-Axis (values)
        u[key] = np.array(urbs_values[key])
        o[key] = np.array(oemof_values[key])

        # draw plots
        plt.plot(i, u[key], label='urbs_'+str(key), linestyle='None', marker='x')
        plt.ticklabel_format(axis='y', style='sci', scilimits=(0, 0))
        plt.plot(i, o[key], label='oemof_'+str(key), linestyle='None', marker='.')
        plt.ticklabel_format(axis='y', style='sci', scilimits=(0, 0))

    # plot specs
    plt.xlabel('Timesteps [h]')
    plt.ylabel('Flow [MWh]')
    plt.title(site+' '+name)
    plt.grid(True)
    plt.tight_layout(rect=[0,0,0.7,1])
    plt.legend(bbox_to_anchor=(1.025, 1), loc=2, borderaxespad=0)
    # plt.show()

示例: enter image description here

2 个答案:

答案 0 :(得分:1)

您可以通过为y中的plt.title(...)参数提供一个值,例如plt.title(site+' '+name, y=1.1)来更改标题的位置。

答案 1 :(得分:0)

您可以通过以下方式编辑标题位置:

# plot specs
plt.xlabel('Timesteps [h]')
plt.ylabel('Flow [MWh]')
plt.title(site+' '+name)
ttl = plt.title
ttl.set_position([.5, 1.02])
plt.grid(True)
plt.tight_layout(rect=[0,0,0.7,1])
plt.legend(bbox_to_anchor=(1.025, 1), loc=2, borderaxespad=0)
# plt.show()

调整“ 1.02”应该可以解决问题