清洁的matplotlib图表,没有框架、边距和坐标轴。

huangapple go评论57阅读模式
英文:

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

创建这个图表。

问题:

  1. 选项删除了刻度和标签,但仍然保留了一个小黑色边框。
ax.xaxis.set_visible(False)
ax.yaxis.set_visible(False)
  1. 选项去除了背景,但仍然保留了白色边距。
ax.axis('off') 
fig.tight_layout(pad=0)
  1. 选项移除了我想要的一切,但也移除了背景。
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

清洁的matplotlib图表,没有框架、边距和坐标轴。

The problems:

  1. Option removes the ticks and labels but a small black frame remains.

     ax.xaxis.set_visible(False)
     ax.yaxis.set_visible(False)
    
  2. Option removes the background and still leaves a white margin.

     ax.axis('off') 
     fig.tight_layout(pad=0)
    
  3. 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()

输出:

清洁的matplotlib图表,没有框架、边距和坐标轴。

英文:

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:

清洁的matplotlib图表,没有框架、边距和坐标轴。

huangapple
  • 本文由 发表于 2023年2月23日 23:24:48
  • 转载请务必保留本文链接:https://go.coder-hub.com/75546862.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定