Автор оригинала: Team Python Pool.
Здравствуйте программисты, сегодня мы узнаем о реализации таблиц Matplotlib в Python. Метод matplotlib.pyplot.table() используется для создания или добавления таблицы к осям в программах python. Он генерирует таблицу, используемую в качестве расширения штабелированной гистограммы. Прежде чем мы перейдем к различным примерам и форматированию таблиц, позвольте мне просто кратко рассказать вам о синтаксисе и типе возвращаемой функции таблицы Matplotlib.
Matplotlib Table в Python-это особая функция, которая позволяет построить таблицу. До сих пор существует множество методов построения графиков, таких как aggregate base, aggregate line charts и другие способы. Используя matplotlib.pyplot.table(), мы можем добавить таблицу к осям. Затем эта таблица строится со столбцами в виде оси x и значениями в виде оси y. Давайте взглянем на синтаксис и полное объяснение кода –
Синтаксис таблицы Matplotlib:
Указание одного из cellText или cellColours в качестве параметра табличной функции matplotlib является обязательным. Эти параметры должны быть 2D-списками, в которых внешние списки определяют строки, а внутренний список определяет значения столбцов каждой строки. Любые другие размерные данные не будут приняты функцией.
Таблица может дополнительно иметь заголовки строк и столбцов. rowLabels, rowColours, rowLoc и colLabels, colColours, colLoc соответственно являются необязательными параметрами для этой функции. **kwargs-это необязательные параметры для настройки размера 2-d списка, передаваемого в качестве параметра.
Параметры:
- cellColours: Фоновые цвета ячеек.
- <виолончель: Выравнивание текста внутри ячеек. (по умолчанию: 'right')
- colWidths (необязательно): Ширина столбца в единицах осей.
- rowLabels (необязательно): Текст ячеек заголовка строки.
- rowColours (необязательно): Цвета ячеек заголовка строки.
- rowLoc (необязательно): Выравнивание текста ячеек заголовка строки. (по умолчанию: 'left')
- colLabels (необязательно): Текст ячеек заголовка столбца.
- <холодные цвета (необязательно): Цвета ячеек заголовка столбца.
- Loc (необязательно): Этот параметр представляет собой положение ячейки относительно ax.
- bbox (необязательно): Этот параметр является ограничивающим прямоугольником для рисования таблицы.
- ребра (необязательно): Этот параметр представляет собой ребра ячейки, которые будут нарисованы линией.
- **kwargs: Используется для управления свойствами таблицы.
Тип возврата:
Метод matplotlib.pyplot.table() возвращает созданную таблицу, передавая необходимые данные в качестве параметров. Этот объект таблицы можно захватить, чтобы изменить определенные значения в таблице. Этот объект относится к href="https://matplotlib.org/3.1.1/api/table_api.html#matplotlib.table.Таблица">matplotlib.table.Объект Table(). Таблица состоит из 2d-сетки, которую можно индексировать с помощью строк и столбцов. Кроме того, вы также можете изменить семейство шрифтов таблицы. href="https://matplotlib.org/3.1.1/api/table_api.html#matplotlib.table.Таблица">matplotlib.table.Объект Table(). Таблица состоит из 2d-сетки, которую можно индексировать с помощью строк и столбцов. Кроме того, вы также можете изменить семейство шрифтов таблицы.
Реализация таблицы Matplotlib
import matplotlib.pyplot as plt val1 = ["{:X}".format(i) for i in range(10)] val2 = ["{:02X}".format(10 * i) for i in range(10)] val3 = [["" for c in range(10)] for r in range(10)] fig,.subplots() ax.set_axis_off() .table( , , , rowColours =["palegreen"] * 10, colColours =["palegreen"] * 10, , ) ax.set_title('matplotlib.axes.Axes.table() function Example', ) plt.show()
Выход:
Объяснение:
В приведенном выше примере matplotlib.pyplot.table() принимает 2-d список в качестве параметра. Передаваемые параметры следующие:-,,, row Colours =["pale green"] * 10, col Colours =["pale green"] * 10,,. Val1, val2 и val3 запускаются для циклов, каждый из которых генерирует значения для меток столбцов, меток строк и текста ячеек соответственно. Установка цветов строк и холодных цветов на "бледно-зеленый" изменяет цвет ячеек заголовка строк и столбцов на бледно-зеленый. Настройка устанавливает выравнивание заголовка href="https://en.wikipedia.org/wiki/Row-_and_column-major_order#:~:text=In%20computing%2C%20row%2Dmajor%20order,such%20as%20random%20access%20memory.&text=Data%20layout%20is%20critical%20for,written%20in%20different%20programming%20languages.">row и значения столбцов в центр. И, наконец, устанавливает выравнивание заголовка в верхнем левом углу. href="https://en.wikipedia.org/wiki/Row-_and_column-major_order#:~:text=In%20computing%2C%20row%2Dmajor%20order,such%20as%20random%20access%20memory.&text=Data%20layout%20is%20critical%20for,written%20in%20different%20programming%20languages.">row и значения столбцов в центр. И, наконец, устанавливает выравнивание заголовка в верхнем левом углу.
Стиль заголовков строк и столбцов
Выход:
Объяснение:
Приведенный выше фрагмент кода используется для стилизации заголовков строк и столбцов.списки цветов, один для каждой ячейки заголовка строки и другой для каждой ячейки заголовка столбца. Горизонтальное выравнивание заголовка строки устанавливается на right. Мы просто используем цветовую карту plt.cm.BuPm, чтобы заполнить два списка цветов: один для каждой ячейки заголовка строки и другой для каждой ячейки заголовка столбца. Однако есть лучший выбор, чем линейная цветовая карта для декоративных цветов.
Стиль таблицы Matplotlib в Python
Выход:
Объяснение:
Мы можем явно объявить фигуру, чтобы получить легкий контроль над ее границей и цветом фона. В приведенном выше фрагменте кода Небесно-голубой цвет является фоновым цветом,а граница рисунка установлена на стальной синий.
Полный Пример Таблицы Matplotlib В Виде Гистограммы
В следующем примере мы будем использовать данные об использовании мобильных телефонов в 2010, 2012, 2014 и 2016 годах. На столе есть ряды Звонков, Фотографий, Текстовых сообщений, Интернета и Игр. Из следующей тенденции можно сделать вывод, что использование мобильных телефонов растет год от года. Мы будем использовать matplotlib.pyplot.Table() для создания объекта table и отображения его с помощью окна Tkinter.
import numpy as np import matplotlib.pyplot as plt data = [[ 100, 100, 99, 95], [ 66, 71, 76, 82], [ 73, 75, 79, 81], [ 17, 23, 42, 55], [ 12, 18, 26, 20]] columns = ('2010', '2012', '2014', '2016') rows = ("Make Calls", "Take Photos", "Texting", "Internet", "Playing games")[::-1] .arange(0, 50, 10) # Get some pastel shades for the colors.cm.BuPu(np.linspace(0, 0.5, len(rows)))(data) .arange(len(columns)) + 0.3.4 # Initialize the vertical-offset for the stacked bar chart..zeros(len(columns)) # Plot bars and create text labels for the table cell_text = [] for row in range(n_rows): plt.bar(index, data[row], bar_width,,[row]) + data[row] cell_text.append(['%1.1f' % (x) for x in y_offset]) # Reverse colors and text labels to display the last value at the top.[::-1] cell_text.reverse() # Add a table at the bottom of the axes.table(cellText=cell_text, , , , ) # Adjust layout to make room for the table:.2,.2) plt.ylabel("Usage of mobile phones in ${0}'s".format(value_increment)) plt.yticks(values * value_increment, ['%d' % val for val in values]) plt.xticks([]) plt.title('Using Mobile Phones') plt.show()
Выход –
Объяснение –
Сначала мы импортируем все необходимые модули, а затем объявляем наборы данных в виде 2d-списка. Далее мы создаем объект таблицы, передавая соответствующие параметры. Затем мы, наконец, используем plt.show() для отображения интерфейса matplotlib.
Полный Пример Таблицы Matplotlib В Виде Линейного Графика
В предыдущем примере мы построили гистограмму для данного набора данных мобильных телефонов. В этом примере мы построим линейный график для каждой строки набора данных, чтобы проверить его тренд. Линейные графики лучше дают представление о тенденциях в наборе данных. Мы будем использовать базовый matplotlib.plot() для построения каждой строки в виде строки. Давайте перейдем к коду –
import numpy as np import matplotlib.pyplot as plt data = [[ 100, 100, 99, 95], [ 66, 71, 76, 82], [ 73, 75, 79, 81], [ 17, 23, 42, 55], [ 12, 18, 26, 20]] columns = ('2010', '2012', '2014', '2016') rows = ("Make Calls", "Take Photos", "Texting", "Internet", "Playing games")[::-1] .arange(0, 10, 1) # Get some pastel shades for the colors.cm.BuPu(np.linspace(0, 0.5, len(rows)))[::-1].arange(len(columns)) + 0.3.4(data) for row in range(n_rows): plt.plot(index, data[row], bar_width,[row]) ,,,,) .25,.25) plt.ylabel("Usage of mobile phones in ${0}'s".format(value_increment)) plt.yticks(values * value_increment, ['%d' % val for val in values]) plt.xticks([]) plt.title('Using Mobile Phones') plt.show()
В предыдущем примере мы построили гистограмму для данного набора данных мобильных телефонов. В этом примере мы построим линейный график для каждой строки набора данных, чтобы проверить его тренд. Линейные графики лучше дают представление о тенденциях в наборе данных. Мы будем использовать базовый matplotlib.plot() для построения каждой строки в виде строки. Давайте перейдем к коду –
Объяснение –
Объяснение аналогично предыдущему. Единственным изменением в коде было использование plt.plot() вместо plt.bar(). Это создало линейный график всех строк в окне Tkinter.
Полный Пример Таблицы Matplotlib В Виде Круговых Диаграмм
Круговые диаграммы - это уникальный способ отображения данных. В этом разделе вы узнаете о создании круговых диаграмм для 2-d таблицы и их использовании. Все сгенерированные круговые диаграммы используются для создания осей сетки matplotlib. Эта сетка автоматически подстраивается под размер круговых диаграмм.
import numpy as np import matplotlib.pyplot as plt data = [[ 100, 100, 99, 95], [ 66, 71, 76, 82], [ 73, 75, 79, 81], [ 17, 23, 42, 55], [ 12, 18, 26, 20]](map(list, zip(*data))) columns = ('2010', '2012', '2014', '2016') rows = ("Make Calls", "Take Photos", "Texting", "Internet", "Playing games")[::-1] fig,.subplots(2, 2) axs[0, 0].pie(data[0],,,) axs[0, 0].set_title(columns[0]) axs[0, 1].pie(data[1],,,) axs[0, 1].set_title(columns[1]) axs[1, 0].pie(data[2],,,) axs[1, 0].set_title(columns[2]) axs[1, 1].pie(data[3],,,) axs[1, 1].set_title(columns[3]) plt.show()
Выход –
Объяснение –
Во-первых, мы создали оси с помощью plt.subplots(). Эта функция возвращает определенную рабочую область, в которой можно построить диаграммы по отдельности. Затем мы можем использовать либо петлю через эти точки, либо построить каждый пирог независимо. В этом случае я вручную добавил каждый пирог по отдельным осям.
Вывод
Эта статья предлагает вам очень простые и краткие концепции таблиц Matplotlib в python. Он включает в себя способы вставки таблиц в вашу программу python очень аккуратным образом. Методы стилизации заголовков таблиц, строк и столбцов так явно обсуждаются здесь. Любые запросы, связанные с таблицами, см. в этой статье.
Однако, если у вас есть какие-либо сомнения или вопросы, дайте мне знать в разделе комментариев ниже. Я постараюсь помочь вам как можно скорее.
Счастливого Пифонирования!