matplotlib — самая известная библиотека для построения графиков на python, которая предоставляет набор команд API, похожих на matlab, которые очень подходят для интерактивного построения графиков.
Он хорошо документирован иGalleryНа странице сотни миниатюр, а после открытия есть исходные программы. Поэтому, если вам нужно нарисовать какой-либо график, просто просмотрите/скопируйте/вставьте эту страницу, и все готово.
Это диаграмма эффекта, которую нужно реализовать, используя Matplotlib для рисования изображения функции y = x^2^.
Код
import matplotlib.pyplot as plt
import numpy as np
# 定义 x 变量的范围 (-3,3) 数量 50
x=np.linspace(-3,3,50)
y=x**2
# Figure 并指定大小
plt.figure(num=3,figsize=(8,5))
# 绘制 y=x^2 的图像,设置 color 为 red,线宽度是 1,线的样式是 --
plt.plot(x,y,color='red',linewidth=1.0,linestyle='--')
# 设置 x,y 轴的范围以及 label 标注
plt.xlim(-1,2)
plt.ylim(-2,3)
plt.xlabel('x')
plt.ylabel('y')
# 设置坐标轴刻度线
# Tick X 范围 (-1,2) Tick Label(-1,-0.25,0.5,1.25,2) 刻度数量 5 个
new_ticks=np.linspace(-1,2,5)
plt.xticks(new_ticks)
# Tick Y 范围(-2.2,-1,1,1.5,2.4) ,Tick Label (-2.2, -1, 1, 1.5, 2.4) 别名(下面的英文)
plt.yticks([-2.2,-1,1,1.5,2.4],
[r'$really\ bad$',r'$bad$',r'$normal$',r'$good$',r'$really\ good$'])
# 设置坐标轴 gca() 获取坐标轴信息
ax=plt.gca()
# 使用.spines设置边框:x轴;将右边颜色设置为 none。
# 使用.set_position设置边框位置:y=0的位置;(位置所有属性:outward,axes,data)
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
# 移动坐标轴
# 将 bottom 即是 x 坐标轴设置到 y=0 的位置。
ax.xaxis.set_ticks_position('bottom')
ax.spines['bottom'].set_position(('data',0))
# 将 left 即是 y 坐标轴设置到 x=0 的位置。
ax.yaxis.set_ticks_position('left')
ax.spines['left'].set_position(('data',0))
# 设置标签
ax.set_title('y = x^2',fontsize=14,color='r')
# 显示图像
plt.show()
Во-первых, введение в компоненты изображений Matplotlib.
Базовый состав
В matplotlib все изображение является объектом Figure. Объект Figure может содержать один или несколько объектов Axes. Каждый объект Axes(ax) представляет собой область рисования со своей собственной системой координат.
Принадлежность следующая (картинка взята из интернета):
На картинке: Title — название изображения, Axis — ось, Label — метка оси, Tick — галочка, Tick Label — аннотация галочки.
Взаимоотношения каждого объекта можно разделить на следующие (картинки из интернета):
Пошаговый анализ рисования Matplotlib
Уведомление
Установка matplotlib здесь не объясняется. Я использую блокнот Anaconda. Поэтому вы можете напрямую импортировать модуль matplotlib. Если вы хотите установить Anaconda, ознакомьтесь с другой написанной статьей.
Если вы не хотите использовать Anaconda, ознакомьтесь с этой рекомендуемой статьей о том, как установить matplotlib (видео и учебник по статье) —Не беспокойтесь о Python -- Matplotlib
Хотя весь код размещен выше, люди с основой matplotlib могут понять его с первого взгляда, но для новичков это более запутанно.
1. Matplotlib реализует простые изображения
использоватьimport
модуль импортаmatplotlib.pyplot
, и сокращенноplt
использоватьimport
модуль импортаnumpy
, и сокращенноnp
.
#导入 module
import matplotlib.pyplot as plt
import numpy as np
использоватьnp.linspace
Задайте x: диапазон равен (-3, 3), число равно 50, а смоделированный одномерный набор данных (x
,y
) представляет собой кривую.
# 定义 x 变量的范围 (-3,3) 数量 50
x=np.linspace(-3,3,50)
y=x**2
использоватьplt.figure
Чтобы определить окно изображения, используйтеplt.plot
картина (x
,y
) кривая, использоватьplt.show
Отобразите изображение.
#绘制及显示
plt.figure()
plt.plot(x, y)
plt.show()
окончательный код
import matplotlib.pyplot as plt
import numpy as np
# 定义 x 变量的范围 (-3,3) 数量 50
x=np.linspace(-3,3,50)
y=x**2
plt.figure()
plt.plot(x, y)
plt.show()
результат операции
Видя это, есть ли большой разрыв с окончательным рендерингом? Это не имеет значения, давайте посмотрим вниз.
2. Установите изображение рисунка
использоватьplt.figure
Определите окно изображения: номер 3 и размер (8, 5). использоватьplt.plot
картина(x
,y
) кривая, цветовое свойство кривой (color
) красный. Ширина кривой (linewidth
) равно 1,0. тип кривой (linestyle
) — пунктирная линия, используйтеplt.show
Отобразите изображение.
plt.figure(num=3,figsize=(8,5))
plt.plot(x,y,color='red',linewidth=1.0,linestyle='--')
окончательный код
import matplotlib.pyplot as plt
import numpy as np
# 定义 x 变量的范围 (-3,3) 数量 50
x=np.linspace(-3,3,50)
y=x**2
# Figure 并指定大小
plt.figure(num=3,figsize=(8,5))
# 绘制 y=x^2 的图像,设置 color 为 red,线宽度是 1,线的样式是 --
plt.plot(x,y,color='red',linewidth=1.0,linestyle='--')
plt.show()
текущий результат
3. Установите ось координат
Установите диапазон координат оси x, y и метку
использоватьplt.xlim
установить диапазон оси X: (-1, 2); использоватьplt.ylim
Установите диапазон оси Y: (-2, 3);
использоватьplt.xlabel
установить имя оси x: 'x'; использоватьplt.ylabel
Установите имя оси Y: «Я Y»;
Код
import matplotlib.pyplot as plt
import numpy as np
# 定义 x 变量的范围 (-3,3) 数量 50
x=np.linspace(-3,3,50)
y=x**2
# Figure 并指定大小
plt.figure(num=3,figsize=(8,5))
# 绘制 y=x^2 的图像,设置 color 为 red,线宽度是 1,线的样式是 --
plt.plot(x,y,color='red',linewidth=1.0,linestyle='--')
# 设置 x,y 轴的范围以及 label 标注
plt.xlim(-1,2)
plt.ylim(-2,3)
plt.xlabel('x')
plt.ylabel('y')
plt.show()
результат операции
Установите диапазон шкалы x, y и отметьте метки
установить ось Xиспользоватьnp.linspace
Определите диапазон и число: диапазон (-1,2); число 5.
использоватьplt.xticks
Установите масштаб по оси x: диапазон (-1,2), число 5.
установить ось Yиспользоватьplt.yticks
Установите шкалу оси Y и имя: шкала [-2, -1,8, -1, 1,22, 3]; название соответствующей шкалы ['действительно плохо','плохо','нормально','хорошо ', 'действительно хорошо' '].
# 设置坐标轴刻度线
# Tick X 范围 (-1,2) Tick Label(-1,-0.25,0.5,1.25,2) 刻度数量 5 个
new_ticks=np.linspace(-1,2,5)
plt.xticks(new_ticks)
# Tick Y 范围(-2.2,-1,1,1.5,2.4) ,Tick Label (-2.2, -1, 1, 1.5, 2.4) 别名(下面的英文)
plt.yticks([-2.2,-1,1,1.5,2.4],
[r'$really\ bad$',r'$bad$',r'$normal$',r'$good$',r'$really\ good$'])
окончательный код
import matplotlib.pyplot as plt
import numpy as np
# 定义 x 变量的范围 (-3,3) 数量 50
x=np.linspace(-3,3,50)
y=x**2
# Figure 并指定大小
plt.figure(num=3,figsize=(8,5))
# 绘制 y=x^2 的图像,设置 color 为 red,线宽度是 1,线的样式是 --
plt.plot(x,y,color='red',linewidth=1.0,linestyle='--')
# 设置 x,y 轴的范围以及 label 标注
plt.xlim(-1,2)
plt.ylim(-2,3)
plt.xlabel('x')
plt.ylabel('y')
# 设置坐标轴刻度线
# Tick X 范围 (-1,2) Tick Label(-1,-0.25,0.5,1.25,2) 刻度数量 5 个
new_ticks=np.linspace(-1,2,5)
plt.xticks(new_ticks)
# Tick Y 范围(-2.2,-1,1,1.5,2.4) ,Tick Label (-2.2, -1, 1, 1.5, 2.4) 别名(下面的英文)
plt.yticks([-2.2,-1,1,1.5,2.4],
[r'$really\ bad$',r'$bad$',r'$normal$',r'$good$',r'$really\ good$'])
# 显示图像
plt.show()
Запустите эффект, обратите внимание на масштаб оси x, y и изменения метки
В-четвертых, переместите ось координат
Скрыть правую и верхнюю границы
-
использовать
plt.gca
Получить информацию о текущей оси. -
использовать
.spines
установить границу: правая граница; использовать.set_color
Установите цвет границы: по умолчанию белый;использовать
.spines
установить границу: верхняя граница; использовать.set_color
Установите цвет границы: по умолчанию белый;
Отрегулируйте оси к центру (отрегулируйте левую границу до x = 0 и нижнюю границу до y = 0)
- использовать
.xaxis.set_ticks_position
Задайте положение номеров или имен делений x-координаты:bottom
. (все места:top
,bottom
,both
,default
,none
). - использовать
.spines
установить границу: ось x; использовать.set_position
Установите положение границы: положение y=0; (положение всех свойств:outward
,axes
,data
)
# 设置坐标轴 gca() 获取坐标轴信息
ax=plt.gca()
# 使用.spines设置边框:x轴;将右边颜色设置为 none。
# 使用.set_position设置边框位置:y=0的位置;(位置所有属性:outward,axes,data)
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
# 移动坐标轴
# 将 bottom 即是 x 坐标轴设置到 y=0 的位置。
ax.xaxis.set_ticks_position('bottom')
ax.spines['bottom'].set_position(('data',0))
# 将 left 即是 y 坐标轴设置到 x=0 的位置。
ax.yaxis.set_ticks_position('left')
ax.spines['left'].set_position(('data',0))
окончательный код
import matplotlib.pyplot as plt
import numpy as np
# 定义 x 变量的范围 (-3,3) 数量 50
x=np.linspace(-3,3,50)
y=x**2
# Figure 并指定大小
plt.figure(num=3,figsize=(8,5))
# 绘制 y=x^2 的图像,设置 color 为 red,线宽度是 1,线的样式是 --
plt.plot(x,y,color='red',linewidth=1.0,linestyle='--')
# 设置 x,y 轴的范围以及 label 标注
plt.xlim(-1,2)
plt.ylim(-2,3)
plt.xlabel('x')
plt.ylabel('y')
# 设置坐标轴刻度线
# Tick X 范围 (-1,2) Tick Label(-1,-0.25,0.5,1.25,2) 刻度数量 5 个
new_ticks=np.linspace(-1,2,5)
plt.xticks(new_ticks)
# Tick Y 范围(-2.2,-1,1,1.5,2.4) ,Tick Label (-2.2, -1, 1, 1.5, 2.4) 别名(下面的英文)
plt.yticks([-2.2,-1,1,1.5,2.4],
[r'$really\ bad$',r'$bad$',r'$normal$',r'$good$',r'$really\ good$'])
# 设置坐标轴 gca() 获取坐标轴信息
ax=plt.gca()
# 使用.spines设置边框:x轴;将右边颜色设置为 none。
# 使用.set_position设置边框位置:y=0的位置;(位置所有属性:outward,axes,data)
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
# 移动坐标轴
# 将 bottom 即是 x 坐标轴设置到 y=0 的位置。
ax.xaxis.set_ticks_position('bottom')
ax.spines['bottom'].set_position(('data',0))
# 将 left 即是 y 坐标轴设置到 x=0 的位置。
ax.yaxis.set_ticks_position('left')
ax.spines['left'].set_position(('data',0))
# 显示图像
plt.show()
результат операции
5. Установите заголовок
Используйте .set_title, чтобы установить заголовок, объявите заголовок y = x^2^, размер шрифта 14 и красный цвет.
# 设置标签
ax.set_title('y = x^2',fontsize=14,color='r')
окончательный код
import matplotlib.pyplot as plt
import numpy as np
# 定义 x 变量的范围 (-3,3) 数量 50
x=np.linspace(-3,3,50)
y=x**2
# Figure 并指定大小
plt.figure(num=3,figsize=(8,5))
# 绘制 y=x^2 的图像,设置 color 为 red,线宽度是 1,线的样式是 --
plt.plot(x,y,color='red',linewidth=1.0,linestyle='--')
# 设置 x,y 轴的范围以及 label 标注
plt.xlim(-1,2)
plt.ylim(-2,3)
plt.xlabel('x')
plt.ylabel('y')
# 设置坐标轴刻度线
# Tick X 范围 (-1,2) Tick Label(-1,-0.25,0.5,1.25,2) 刻度数量 5 个
new_ticks=np.linspace(-1,2,5)
plt.xticks(new_ticks)
# Tick Y 范围(-2.2,-1,1,1.5,2.4) ,Tick Label (-2.2, -1, 1, 1.5, 2.4) 别名(下面的英文)
plt.yticks([-2.2,-1,1,1.5,2.4],
[r'$really\ bad$',r'$bad$',r'$normal$',r'$good$',r'$really\ good$'])
# 设置坐标轴 gca() 获取坐标轴信息
ax=plt.gca()
# 使用.spines设置边框:x轴;将右边颜色设置为 none。
# 使用.set_position设置边框位置:y=0的位置;(位置所有属性:outward,axes,data)
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
# 移动坐标轴
# 将 bottom 即是 x 坐标轴设置到 y=0 的位置。
ax.xaxis.set_ticks_position('bottom')
ax.spines['bottom'].set_position(('data',0))
# 将 left 即是 y 坐标轴设置到 x=0 的位置。
ax.yaxis.set_ticks_position('left')
ax.spines['left'].set_position(('data',0))
# 设置标签
ax.set_title('y = x^2',fontsize=14,color='r')
# 显示图像
plt.show()
результат операции
Наконец, прикрепите общую структурную схему matplotlib (картинка взята из Интернета):
Рекомендуемое чтение
После стольких лет обучения напрасно оказывается, что метод бесполезен
Путешествие Бесси по Python — подробные операции и принципы работы со срезами
Рекомендации по трещинам в стене Anaconda | Amway Python IDE
Половина мира программирования
Рекомендуемые книги
Статистические методы обучения
Недавно я изучал алгоритмы и формулы в машинном обучении. Друг порекомендовал мне эту книгу. После некоторого изучения я, наконец, почувствовал, что эта книга достойна читателей и ее стоит рекомендовать.
Ли Ханг окончил факультет электротехники Киотского университета, Япония, и доктор компьютерных наук Токийского университета, Япония. Когда-то он работал в Центральном научно-исследовательском институте корпорации NEC в Японии старшим научным сотрудником и главным научным сотрудником Microsoft Research Asia, а в настоящее время является главным научным сотрудником лаборатории Huawei Noah's Ark. Приглашенный профессор Пекинского университета, Нанкайского университета и Сианьского университета Цзяотун. Его исследовательские интересы включают поиск информации, обработку естественного языка, статистическое машинное обучение и интеллектуальный анализ данных.
Знакомство с Дубаном
Подробно представлены десять методов статистического обучения, таких как метод опорных векторов, бустинг, максимальная энтропия и условное случайное поле.
Сила мышления: эффективное системное мышление
Ван Шимин, генеральный директор Shenzhen Erya, основатель YouCore, автор колонки Zhihu «Сила фреймворка».
парадокс. Я презирал в душе академическую квалификацию, но случайно попал в известную школу и получил степень магистра; я выступаю за личную свободу, но я был привязан к смерти, создав компанию; я не люблю преподавать, но теперь я занимаюсь обучением. Беспокойный человек. Всего за десять с небольшим лет я поработал трудолюбивым фермером по ИТ-коду, претенциозным консультантом, а теперь — владельцем частного предприятия, который является местной черепахой.
Эта книга очень помогла мне улучшить мои мыслительные способности. Многие методы обучения, представленные в книге, заслуживают изучения. После прочтения этой книги мне также нравится рисовать сводные карты мозга и продолжать систематически учиться. Я настоятельно рекомендую читателям взглянуть на колонку [Сила фреймов], которая очень полезна для улучшения вашего мышления и эффективности обучения.
Знакомство с Дубаном
«Действительно полезная» — вот что отличает эту книгу от других книг для размышлений!
Вы когда-нибудь сталкивались со следующими дилеммами - неспособность понять при анализе, неясность при выражении, медленное обучение при обучении? Хотите всесторонне улучшить свои мыслительные способности? Знаете ли вы, что такое навыки решения проблем и навыки презентации?
В этой книге есть ответы, которые вы хотите знать.
Эта книга разделена на части 3 и всего глав 10. Каждая глава может решить проблему сама по себе, и в то же время вся книга формирует набор системного мышления.
Первая часть исследует источник силы «фреймов». Суть всего на самом деле является системой, и овладение «каркасом» системы также схватывает суть вещей. Нет проблемы, которую нельзя было бы решить с помощью фреймворка, а если один не работает, то два.
Во второй части использование «структуры» для решения проблем разбивается на пять этапов: определение проблемы, построение основы, уточнение ключа, эффективное выполнение, проверка и корректировка, а также уточнение соответствующих превосходных методов и инструментов мышления. Кроме того, также преподается секрет качественного решения задач в условиях ограниченного времени и ограниченных ресурсов - «мышление что, если».
Третья часть учит, как использовать «фреймы» для эффективного выражения. Он постепенно, слой за слоем, демонстрирует очарование нисходящего выражения и объясняет, что такое «визуализированное выражение» с помощью расширенных диаграмм.
Читателям, которые хотят всесторонне улучшить свои мыслительные способности, рекомендуется читать в порядке следования глав этой книги; читателям, стремящимся найти конкретные навыки решения проблем или навыков выражения, они могут также непосредственно читать соответствующие главы. .