Nil*_*ils 1 python overlay matplotlib colorbar subplot
I\xc2\xb4ve 遇到以下问题,即我的颜色条覆盖了“打印”为 pdf 的纸质子图。
\n\n代码示例:
\n\nimport numpy as np\n\nimport matplotlib.pyplot as plt\n\nimport pandas as pd\n\nif __name__ == \'__main__\':\n\n titles = np.random.uniform(low=1, high=11, size=(1,10))\n temp = np.random.uniform(low=23, high=200, size=(10,10))\n ctf0102 = np.random.uniform(low=23, high=200, size=(10,10))\n ctf03 = np.random.uniform(low=23, high=200, size=(10,10))\n\n fig = plt.figure(figsize=(11.69,8.27), dpi=100)\n\n for num in range(len(titles)):\n\n ax = fig.add_subplot(3,4,num)\n\n im = ax.scatter(ctf03[1:,num], ctf0102[:,num], 12, temp[:,num], cmap=\'magma\')\n\n ax.set_title(titles[num])\n\n\n fig.text(0.5, -0.00, \'...\', ha=\'center\', fontsize=16)\n\n fig.text(-0.00, 0.5, \'...\', va=\'center\', rotation=\'vertical\', fontsize=16)\n\n cbar_ax = fig.add_axes([0.85, 0.15, 0.05, 0.7])\n fig.colorbar(im, cax=cbar_ax)\n\n plt.tight_layout(pad=2)\n\n fig.savefig("example.pdf", dpi=fig.dpi, bbox_inches=\'tight\', pad_inches=0.3)\nRun Code Online (Sandbox Code Playgroud)\n\n\n\n知道如何通过调整所有子图的空间大小来将颜色条移动到右侧吗?除此之外,我想放大颜色条,以平滑关闭所有子图的顶部和底部。
\n\n感谢您的帮助和想法。
\n用于fig.subplots_adjust设置子图的底部、顶部、左侧和右侧位置。然后使用相同的bottom和top来定义颜色条垂直放置的位置。并确保颜色条的左边缘位于子图的右侧。
另外,这里不能使用tight_layout,否则会改变位置。
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
fig = plt.figure(figsize=(11.69,8.27), dpi=100)
bottom, top = 0.1, 0.9
left, right = 0.1, 0.8
fig.subplots_adjust(top=top, bottom=bottom, left=left, right=right, hspace=0.15, wspace=0.25)
for num in range(12):
ax = fig.add_subplot(3,4,num+1)
im = ax.scatter(np.random.rand(10), np.random.rand(10), 12, np.random.rand(10), cmap='magma')
fig.text(0.5, 0.02, 'x label', ha='center', fontsize=16)
fig.text(0.02, 0.5, 'ylabel ', va='center', rotation='vertical', fontsize=16)
cbar_ax = fig.add_axes([0.85, bottom, 0.05, top-bottom])
fig.colorbar(im, cax=cbar_ax)
fig.savefig("example.pdf", dpi=fig.dpi, pad_inches=0.3)
Run Code Online (Sandbox Code Playgroud)