我正在尝试使用matplotlib绘制一个圆圈,其直径为2英寸,边框为10像素,我想将其保存在文件中。这是我的代码:
import matplotlib.pyplot as plt
from matplotlib import patches
path = 'test.png'
fig1 = plt.figure()
fig1.dpi = 100
fig1.set_size_inches(2, 2)
ax1 = fig1.add_subplot(111, aspect='equal')
ax1.axes.get_xaxis().set_visible(False)
ax1.axes.get_yaxis().set_visible(False)
ax1.add_patch(patches.Circle((0.5, 0.5),
radius=0.5,
color='k', linewidth=10, fill=False))
fig1.tight_layout()
fig1.savefig(path, bbox_inches='tight', pad_inches=0)
这就是我得到的:
如您所见,部分边框不在图片中。
事实上,即使做一些更简单的事情,我也会得到类似的结果:
import matplotlib.pyplot as plt
from matplotlib import patches
fig1 = plt.figure()
ax1 = fig1.add_subplot(111, aspect='equal')
ax1.add_patch(patches.Circle((0.5, 0.5),
radius=0.5,
color='k', linewidth=10, fill=False))
plt.show()
所以,我无法理解问题出在哪里。
我做错了什么?
答案 0 :(得分:2)
添加补丁不会自动调整轴限制。您必须致电import Vue from 'vue'
import App from 'src/App'
import axios from 'axios'
import MockAdapter from 'axios-mock-adapter'
let mock = new MockAdapter(axios)
describe('try and load some data from somewhere', () => {
it('should update the results variable with results', (done) => {
console.log('test top')
mock.onGet('/static/data.json').reply(200, {
data: {
data: [
{ id: 1, name: 'Mexican keyboard cat' },
{ id: 2, name: 'Will it blend?' }
]
}
})
const VM = new Vue(App).$mount
setTimeout(() => {
expect(VM.results).to.be.null
done()
}, 1000)
})
})
调整内容限制。
ax1.autoscale_view()
答案 1 :(得分:0)
限制很小,默认情况下,在不考虑厚度的情况下取所有点的最小位置和最大值,我建议您将限制设置得稍大一些。您必须是{axes}.set_xlim()
和{axes}.set_ylim()
import matplotlib.pyplot as plt
from matplotlib import patches
path = 'test.png'
fig1 = plt.figure()
fig1.dpi = 100
fig1.set_size_inches(2, 2)
ax1 = fig1.add_subplot(111, aspect='equal')
ax1.axes.get_xaxis().set_visible(False)
ax1.axes.get_yaxis().set_visible(False)
ax1.add_patch(patches.Circle((0.5, 0.5),
radius=0.5,
color='k', linewidth=10, fill=False))
ax1.set_xlim([-0.1, 1.1])
ax1.set_ylim([-0.1, 1.1])
fig1.tight_layout()
fig1.savefig(path, bbox_inches='tight', pad_inches=0)