Следующее работает, если fgets ()
«пропущен» после использования scanf ()
После того, как вы сказали:
scanf ("% d", & amp; loops);
Скажите:
char мусор [100]; fgets (мусор, 100, STDIN);
Это сохранит все оставленные на входном буфере в переменной мусора.
Это эффективно очистит входной буфер и позволит вам использовать fgets ()
после.
EDIT: Недавно я узнал, что есть более легкое решение, чем выше. Если вы скажете getchar () после scanf (), это позволит вам использовать fgets () без проблем. getchar () получит следующий символ во входном буфере, который в этом случае будет «\n». После удаления '\n' из входного буфера fgets должен работать нормально.
Это должно работать:
legend(numpoints=1)
BTW, если вы добавите строку
legend.numpoints : 1 # the number of points in the legend line
в ваш файл matplotlibrc, тогда это будет новый по умолчанию.
[См. также точки рассеяния в зависимости от вашего графика.]
Мне нравится динамически менять параметры matplotlib rc в каждом скрипте python. Для достижения этой цели я просто использую нечто подобное в начале моих файлов python.
from pylab import *
rcParams['legend.numpoints'] = 1
Это применимо ко всем графикам, сгенерированным из моего файла python.
EDIT: For те, кто не любит импортировать пилаб, длинный ответ -
import matplotlib as mpl
mpl.rcParams['legend.numpoints'] = 1
scatterpoints=1
– Marcos Alex 6 March 2014 в 18:04