我有一系列20个图(不是子图)可以在一个图中制作.我希望传说能够在盒子之外.同时,我不想改变轴,因为图形的大小减少了.请帮助我以下查询:
是否有人知道是否可以在图中旋转图例matplotlib?我使用下面的代码制作了一个简单的图,并在绘画中编辑了图表以显示我想要的内容.
plt.plot([4,5,6], label = 'test')
ax = plt.gca()
ax.legend()
plt.show()
Run Code Online (Sandbox Code Playgroud)
我使用以下代码制作了一个多轴图,我无法按照自己的意愿排列图例.我的图表代码如下:
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(4)
y = [5, 7, 4, 9]
z = [9, 3, 5, 6]
r = [30, 40, 45, 37]
fig,ax = plt.subplots()
abc = ax.bar(x,y,0.25 )
cde = ax.bar(x+0.25,z,0.25)
ax.legend((abc[0], cde[0]), ('y', 'z'),bbox_to_anchor=(0., 1.02, 1, .102) , borderaxespad=0.)
ax.set_xticks(x + 0.25 / 2)
ax.set_xticklabels(('A', 'B', 'C', 'D'))
ax2 = ax.twinx()
efg = ax2.plot(x+0.25/2,r,color = 'black',label = "r")
ax2.legend(bbox_to_anchor=(0.11,1.07) , borderaxespad=0.)
plt.show()
Run Code Online (Sandbox Code Playgroud)
右上方的图例垂直对齐,但我希望它们水平对齐.我找不到任何关于此的文件.我希望它们如下图所示.

谢谢
如何为子图中的所有直方图添加全局图例?
下面的代码模仿了一些数据,我希望在图中的某处有一个全局图例。我正在底部思考,但会考虑更好的答案。它可以左对齐、居中或分散。
我如何添加全球图例?我尝试按照此处的fig.legend((v1, v2, v3), ('v1', 'v2', 'v3'), 'lower left')建议使用,但我认为这不适用于直方图。
使用Python 3.8
import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec
%matplotlib inline
v1=[3,1.1,2,5.2,4.9,2.6,3,0.5]
v2=[6.1,5.2,9.5,4.5]
v3=[0.1,1.4,0.5,1.2]
fig, axes = plt.subplots(4,2, figsize=(6.5,4.0), constrained_layout=True)
fig.suptitle('suptile')
mybins = [0,3,6,9,12]
mylist = [0,1,4,7]
for ii, ax in enumerate(axes.flat):
if ii in mylist:
data = [v1,v2,v3]
colors = ['blue', 'red', 'green']
labels = ['v1', 'v2', 'v3']
else:
data = [v1,v2]
colors = ['blue', 'red']
labels = ['v1', 'v2']
ax.hist(data, color=colors,edgecolor='black', alpha=0.5,
density=False, cumulative=False, …Run Code Online (Sandbox Code Playgroud)