带有matplotlib的圆圈,带有边框

时间:2017-01-20 21:42:47

标签: python matplotlib

我正在尝试使用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)

这就是我得到的:

Circle

如您所见,部分边框不在图片中。

事实上,即使做一些更简单的事情,我也会得到类似的结果:

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()

所以,我无法理解问题出在哪里。

我做错了什么?

2 个答案:

答案 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()

Circle

答案 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)

enter image description here