Как построить линию и маркеры? [Дубликат]

Добавить ход: none; в стиле тура. Например:

<svg viewBox="0 0 100 100">
    <defs>
        <marker id="arrow" markerWidth="5" markerHeight="6" refx="5" refy="2" orient="auto">
            <path d="M0,0 L0,4 L5,2.5 L5,1.5 L0,0" style="fill:red; stroke: none;" ></path>
        </marker>
    </defs>

    <path  d="M0,0 L50,50"
          style="stroke:red; stroke-width: 10px; fill: none;
                 marker-end: url(#arrow);"
    ></path>
</svg>

Он работает в IE-11.

107
задан dbmikus 17 July 2013 в 15:37
поделиться

3 ответа

Задайте ключевое слово args linestyle и / или marker в своем обращении к plot.

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

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

Вызов ярлыка для одного и того же:

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

example1 [/g4]

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

================    ===============================
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
   x                x marker
   D                diamond marker
   d                thin_diamond marker
   |                vline marker
   _                hline marker
================    ===============================

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

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()

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

201
ответ дан Community 25 August 2018 в 11:39
поделиться

Для справки в будущем - у исполнителя Line2D, возвращаемого функцией plot(), также есть метод set_markevery(), который позволяет устанавливать метки только в определенных точках - см. https://matplotlib.org/api/_as_gen /matplotlib.lines.Line2D.html#matplotlib.lines.Line2D.set_markevery

13
ответ дан ascripter 25 August 2018 в 11:39
поделиться

Есть изображение, показывающее все названия и описания маркеров, я надеюсь, что это вам поможет.

import matplotlib.pylab as plt
markers=['.',',','o','v','^','<','>','1','2','3','4','8','s','p','P','*','h','H','+','x','X','D','d','|','_']
descriptions=['point', 'pixel', 'circle', 'triangle_down', 'triangle_up','triangle_left', 'triangle_right', 'tri_down', 'tri_up', 'tri_left','tri_right', 'octagon', 'square', 'pentagon', 'plus (filled)','star', 'hexagon1', 'hexagon2', 'plus', 'x', 'x (filled)','diamond', 'thin_diamond', 'vline', 'hline']
x=[]
y=[]
for i in range(5):
    for j in range(5):
        x.append(i)
        y.append(j)
plt.figure()
for i,j,m,l in zip(x,y,markers,descriptions):
    plt.scatter(i,j,marker=m)
    plt.text(i-0.15,j+0.15,s=m+' : '+l)
plt.axis([-0.1,4.8,-0.1,4.5])
plt.tight_layout()
plt.axis('off')
plt.show()  

example1 [/g1] Нажмите здесь, чтобы увидеть изображение

17
ответ дан Wubin Ding 25 August 2018 в 11:39
поделиться
Другие вопросы по тегам:

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