matplotlib: установить маркеры для отдельных точек на линии

Я использовал matplotlib для построения линий на фигуре. Теперь я хотел бы установить стиль, в частности маркер, для отдельных точек на линии. Как мне это сделать?

Изменить: чтобы прояснить мой вопрос, на который был дан ответ, я хочу иметь возможность устанавливать стиль для отдельных маркеров в строке, а не каждый маркер на указанной строке.

2 Solutions collect form web for “matplotlib: установить маркеры для отдельных точек на линии”

Укажите ключевое слово args linestyle и / или marker в вашем вызове.

Например, используя пунктирную линию и маркеры синего круга:

 plt.plot(range(10), linestyle='--', marker='o', color='b') 

Быстрый вызов для одного и того же:

 plt.plot(range(10), '--bo') 

example1

Вот список возможных стилей линий и маркеров:

 ================ =============================== character description ================ =============================== - solid line style -- dashed line style -. dash-dot line style : dotted line style . point marker , pixel marker o circle marker v triangle_down marker ^ triangle_up marker < triangle_left marker > triangle_right marker 1 tri_down marker 2 tri_up marker 3 tri_left marker 4 tri_right marker s square marker p pentagon marker * star marker h hexagon1 marker H hexagon2 marker + plus marker xx marker D diamond marker d thin_diamond marker | vline marker _ hline marker ================ =============================== 

edit: с примером маркировки произвольного подмножества точек, как указано в комментариях:

 import numpy as np import matplotlib.pyplot as plt xs = np.linspace(-np.pi, np.pi, 30) ys = np.sin(xs) markers_on = [12, 17, 18, 19] plt.plot(xs, ys, '-gD', markevery=markers_on) plt.show() 

example2

Этот последний пример с использованием markevery kwarg возможен с 1.4+ из-за слияния этой ветки признаков . Если вы застряли в более старой версии matplotlib, вы все равно можете достичь результата, наложив диаграмму рассеяния на график линии. Дополнительную информацию см. В истории изменений .

Для справки в будущем – художник Line2D возвращаемый plot() также имеет метод set_markevery() который позволяет вам устанавливать только определенные маркеры в определенных точках – см. http://matplotlib.sourceforge.net/api/artist_api.html#matplotlib.lines .Line2D.set_marker

  • Как определить тип типа numpy типа float (C-API)
  • Почему dtype показан (даже если он является родным) при использовании разделения полов с NumPy?
  • Извлечение произвольных прямоугольных патчей из изображения в python
  • Сортировка массива строк с отрицательными номерами?
  • Ошибка Numpy.dot? Непоследовательное поведение NaN
  • Numpy.putmask с изображениями
  • Как форматировать в numble savetxt так, что нули сохраняются только как «0»,
  • numpy: неожиданный результат при делении вертикальной матрицы на один из ее собственных элементов
  •  
    Interesting Posts for Van-Lav

    django: документированный способ получения полей объекта? / Мета документация?

    Сравнение двух похожих, неидентичных деревьев NLTK

    Можно ли использовать два пакета Python с тем же именем?

    Есть ли лучший способ сделать numpy.argmin () игнорировать значения NaN

    Что такое оператор умножения, который действительно работает с массивами numpy?

    Пользовательский модуль Python не импортирует

    Лучший способ вернуть данные из одного файла python в другой

    Программно изменить FileChooserDialog, чтобы сначала просмотреть каталоги с Python 3.4 и Gtk3?

    Методы обработки OpenCV / Image для поиска центров ярких пятен на изображении

    dev_appserver.py Открывает текстовый файл, не развертывает

    Как пропустить пустые даты (выходные) в финансовом графике Matplotlib Python?

    Ошибка Python os.walk и japanese filename

    Python – импортировать файл в NamedTuple

    Путь Python для пула приложений Google App Engine

    Отключить проверку сертификата SSL в Python

    Python - лучший язык программирования в мире.