Как удалить повторяющиеся фигуры из легенды matplotlib? [Дубликат]

Следующее работает, если fgets () «пропущен» после использования scanf ()

После того, как вы сказали:

  scanf ("% d", & amp; loops);   

Скажите:

  char мусор [100];  fgets (мусор, 100, STDIN);   

Это сохранит все оставленные на входном буфере в переменной мусора.

Это эффективно очистит входной буфер и позволит вам использовать fgets () после.

EDIT: Недавно я узнал, что есть более легкое решение, чем выше. Если вы скажете getchar () после scanf (), это позволит вам использовать fgets () без проблем. getchar () получит следующий символ во входном буфере, который в этом случае будет «\n». После удаления '\n' из входного буфера fgets должен работать нормально.

222
задан carl 27 May 2011 в 02:08
поделиться

2 ответа

Это должно работать:

legend(numpoints=1)

BTW, если вы добавите строку

legend.numpoints     : 1      # the number of points in the legend line

в ваш файл matplotlibrc, тогда это будет новый по умолчанию.

[См. также точки рассеяния в зависимости от вашего графика.]

API: Ссылка на документы API

239
ответ дан K.-Michael Aye 17 August 2018 в 12:36
поделиться
  • 1
    Благодарю. Сегодня я столкнулся с этим. Почему это не по умолчанию? – saltycrane 27 May 2011 в 07:45
  • 2
    Есть ли способ уменьшить область, в которой точка принимает легенду? – Yotam 3 January 2014 в 11:13
  • 3
    опция для диаграмм рассеяния - scatterpoints=1 – Marcos Alex 6 March 2014 в 18:04
  • 4
    @DMS: Я этого не видел. Виноват. Вы должны также выделить его как код, чтобы сделать его более заметным. – Marcos Alex 7 March 2014 в 10:41
  • 5
    Наконец, в matplotlib 2.0 есть планы для numpoints = 1! Ура! github.com/matplotlib/matplotlib/issues/4854 – DanHickstein 28 October 2015 в 18:01

Мне нравится динамически менять параметры matplotlib rc в каждом скрипте python. Для достижения этой цели я просто использую нечто подобное в начале моих файлов python.

from pylab import *
rcParams['legend.numpoints'] = 1

Это применимо ко всем графикам, сгенерированным из моего файла python.

EDIT: For те, кто не любит импортировать пилаб, длинный ответ -

import matplotlib as mpl
mpl.rcParams['legend.numpoints'] = 1
24
ответ дан mcgagnon 17 August 2018 в 12:36
поделиться
Другие вопросы по тегам:

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