英文:
Clean matplotlib figure without frame, margins, axes
问题
需要一个没有标签、坐标轴和边框的图表 - 只有纯数据图。
例如:
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.set_facecolor('green')
ax.plot(range(0, 10), c='red')
创建这个图表。
问题:
- 选项删除了刻度和标签,但仍然保留了一个小黑色边框。
ax.xaxis.set_visible(False)
ax.yaxis.set_visible(False)
- 选项去除了背景,但仍然保留了白色边距。
ax.axis('off')
fig.tight_layout(pad=0)
- 选项移除了我想要的一切,但也移除了背景。
fig.patch.set_visible(False)
其他解决方案,例如这个,效果不佳。
英文:
I need a figure without labels, axes, and frame - just the pure data plot.
For example:
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.set_facecolor('green')
ax.plot(range(0, 10), c='red')
creates this plot
The problems:
-
Option removes the ticks and labels but a small black frame remains.
ax.xaxis.set_visible(False) ax.yaxis.set_visible(False)
-
Option removes the background and still leaves a white margin.
ax.axis('off') fig.tight_layout(pad=0)
-
Option removes everything I want but also the background:
fig.patch.set_visible(False)
Other solutions like this one don't work as well.
Any ideas?
答案1
得分: 2
你可以使用 subplots_adjust
方法去除白色边距,使用 spines.set_visible
方法去除边框:
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.set_facecolor('green')
ax.plot(range(0, 10), c='red')
plt.subplots_adjust(left=0, bottom=0, right=1, top=1)
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
ax.spines['bottom'].set_visible(False)
ax.spines['left'].set_visible(False)
plt.show()
输出:
英文:
You can remove the white margins with subplots_adjust
and the frame with spines.set_visible
:
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.set_facecolor('green')
ax.plot(range(0, 10), c='red')
plt.subplots_adjust(left=0, bottom=0, right=1, top=1)
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
ax.spines['bottom'].set_visible(False)
ax.spines['left'].set_visible(False)
plt.show()
Output:
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论