阅读下面的文章,我设法将一个传奇放在外面.
码:
import matplotlib.pyplot as pyplot
x = [0, 1, 2, 3, 4]
y = [xx*xx for xx in x]
fig = pyplot.figure()
ax = fig.add_subplot(111)
box = ax.get_position()
ax.set_position([box.x0, box.y0, box.width*0.8, box.height])
ax.plot(x, y)
leg = ax.legend(['abc'], loc = 'center left', bbox_to_anchor = (1.0, 0.5))
#pyplot.show()
fig.savefig('aaa.png', bbox_inches='tight')
Run Code Online (Sandbox Code Playgroud)
pyplot.show()显示正确的情节,外面有一个图例.但是当我将其保存为文件时fig.savefig(),图例会被截断.
一些谷歌搜索显示我作为变通方法添加这样bbox_extra_artists=[leg.legendPatch]或bbox_extra_artists=[leg]至savefig(),但既不工作.
这样做的正确方法是什么?Matplotlib版本为0.99.3.
谢谢.
我在我的 python 脚本中有这个
date_list = ["01/11/2015", "01/12/2015", "01/13/2015", "01/14/2015"]
plt.plot([1,2,3,4], [2,4,6,8])
plt.xticks([1,2,3,4], date_list)
locs, labels = plt.xticks()
plt.setp(labels, rotation=45)
plt.savefig('test.pdf')
Run Code Online (Sandbox Code Playgroud)
它产生了一个看起来像这样的图表
正如你所看到的 x 标签被切断,这不是我没有完全展开图表,我已经尝试过,它仍然被切断。我怎样才能在图表上获得整个标签?
谢谢
如何为子图中的所有直方图添加全局图例?
下面的代码模仿了一些数据,我希望在图中的某处有一个全局图例。我正在底部思考,但会考虑更好的答案。它可以左对齐、居中或分散。
我如何添加全球图例?我尝试按照此处的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)