相关疑难解决方法(0)

Matplotlib savefig与情节外的传奇

阅读下面的文章,我设法将一个传奇放在外面.

码:

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 matplotlib legend

34
推荐指数
3
解决办法
4万
查看次数

X 轴标签被图形截断 - Python Matplotlib

我在我的 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 标签被切断,这不是我没有完全展开图表,我已经尝试过,它仍然被切断。我怎样才能在图表上获得整个标签?

谢谢

python matplotlib

1
推荐指数
1
解决办法
6067
查看次数

Matplotlib如何为直方图的子图添加全局图例

如何为子图中的所有直方图添加全局图例?

下面的代码模仿了一些数据,我希望在图中的某处有一个全局图例。我正在底部思考,但会考虑更好的答案。它可以左对齐、居中或分散。

我如何添加全球图例?我尝试按照此处的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)

python matplotlib legend subplot

1
推荐指数
1
解决办法
1万
查看次数

标签 统计

matplotlib ×3

python ×3

legend ×2

subplot ×1