Вопрос по python – Как сделать пустой участок в matplotlib?

61

Я делаю группу подзаговоров (скажем, 3 x 2) в matplotlib, но у меня меньше 6 наборов данных. Как я могу сделать оставшийся субплот пустым?

Расположение выглядит следующим образом:

+----+----+
| 0,0| 0,1|
+----+----+
| 1,0| 1,1|
+----+----+
| 2,0| 2,1|
+----+----+

Это может продолжаться для нескольких страниц, но на последней странице есть, например, 5 наборов данных, чтобы поле 2,1 было пустым. Тем не менее, я объявил цифру как:

cfig,ax = plt.subplots(3,2)

Таким образом, в области для субплота 2,1 есть набор осей по умолчанию с галочками и метками. Как я могу программно сделать это пространство пустым и лишенным осей?

Ваш Ответ

4   ответа
2

используя метод Axes.set_visible ().

import matplotlib.pyplot as plt
import pandas as pd

fig = plt.figure()
data = pd.read_csv('sampledata.csv')

for i in range(0,6):
ax = fig.add_subplot(3,2,i+1)
ax.plot(range(1,6), data[i])
if i == 5:
    ax.set_visible(False)
96

которые вам не нужны. Например, следующий код полностью поворачивает 6-ю ось:

import matplotlib.pyplot as plt

hf, ha = plt.subplots(3,2)
ha[-1, -1].axis('off')

plt.show()

и результаты на следующем рисунке:

enter image description here

В качестве альтернативы см. Принятый ответ на вопрос.Сокрытие текста оси на графиках matplotlib для способа сохранения осей, но скрывая все украшения осей (например, отметки и метки).

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded mishaF
на вторую мысль - такая лучше подойдет, что я переключился .... mishaF
Error: User Rate Limit Exceededadd_subplot()Error: User Rate Limit Exceeded
1

import matplotlib
matplotlib.use("pdf")
import matplotlib.pyplot as plt

plt.figure()
plt.gcf().add_subplot(421)
plt.fill([0,0,1,1],[0,1,1,0])
plt.gcf().add_subplot(422)
plt.fill([0,0,1,1],[0,1,1,0])
plt.gcf().add_subplot(423)
plt.fill([0,0,1,1],[0,1,1,0])
plt.suptitle("Figure Title")
plt.gcf().subplots_adjust(hspace=0.5,wspace=0.5)
plt.savefig("outfig")
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded mishaF
Error: User Rate Limit Exceeded mishaF
21

much улучшенныйинтерфейс подзаговора был добавлен в matplotlib с тех пор, как этот вопрос был задан впервые. Здесь вы можете создать именно те сюжеты, которые вам нужны, не скрывая дополнений. Кроме того, вспомогательные участки могут охватывать дополнительные строки или столбцы.


ax1 = plt.subplot2grid((3,2),(0, 0))
ax2 = plt.subplot2grid((3,2),(0, 1))
ax3 = plt.subplot2grid((3,2),(1, 0))
ax4 = plt.subplot2grid((3,2),(1, 1))
ax5 = plt.subplot2grid((3,2),(2, 0))

plt.show()

enter image description here

Error: User Rate Limit Exceeded mishaF
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded

Похожие вопросы