python 用matplotlib增加情节和标题之间的空间

vkc1a9a2  于 2023-04-10  发布在  Python
关注(0)|答案(3)|浏览(125)

我正在使用下面的脚本生成一些情节。问题是有时科学计数法与标题重叠。

有没有办法解决这个问题,比如把情节往下移一点?

# 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()

示例:

zbq4xfa0

zbq4xfa01#

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

yruzcnhs

yruzcnhs2#

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

# 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”应该可以

ldxq2e6h

ldxq2e6h3#

另一个简单的解决方案是在标题中添加一个换行符"\n“。

plt.title("Title here and then \n")

相关问题