Как я могу сделать пустой подзаголовок в matplotlib?
Я делаю группу подзаголовков (скажем, 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 ответа:
вы всегда можете скрыть оси, которые вам не нужны. Например, следующий код полностью поворачивает 6-ю ось:
import matplotlib.pyplot as plt hf, ha = plt.subplots(3,2) ha[-1, -1].axis('off') plt.show()
и приводит к следующему рисунку:
кроме того, см. принятый ответ на вопрос скрытие текста оси в графиках matplotlib для того, чтобы сохранить оси, но скрыть все украшения осей (например, деления и метки).
A много улучшение сюжетные интерфейс был добавлен в matplotlib, так как этот вопрос был впервые задан. Здесь вы можете создать именно те подзаголовки, которые вам нужны, не скрывая дополнительные функции. Кроме того, вложенные диаграммы могут охватывать дополнительные строки или столбцы.
import pylab as plt 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()
кроме того, возможно, чтобы скрыть делянке, используя топоры.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)
можно ли создавать подзаголовки, когда они вам нужны?
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")