Пунктирная линия не различима с толстой шириной линии - PullRequest
0 голосов
/ 06 сентября 2018

Я хотел бы увеличить ширину линии в моей легенде, и при этом еще видеть, что эта линия пунктирная. У меня есть короткий образец того, что я имею в виду

for i=1:10
 x(i)=i;
 line1(i)=i;
 line2(i)=2*i;
endfor

subplot(2,1,1)
plot(x,line1,"-","LineWidth",1,x,line2,"--","LineWidth",1)
legend("solid","dashed")

subplot(2,1,2)
plot(x,line1,"-","LineWidth",10,x,line2,"--","LineWidth",10)
legend("solid","dashed")

Это дает следующее изображение enter image description here

Как вы можете видеть на втором рисунке, вместо пунктирной линии есть только 1 строка.

Ответы [ 2 ]

0 голосов
/ 07 сентября 2018

Комментарий Энди помог мне придумать другой подход по сравнению с Тасосом. Я увеличил размер окна легенды. Еще есть необходимость поиграть с определенной позицией и размером, но все работает как положено.

for i=1:10
  x(i)=i;
  line1(i)=i;
  line2(i)=2*i;
endfor

subplot(2,1,1)
plot(x,line1,"-","LineWidth",1,x,line2,"--","LineWidth",1)
legend("solid","dashed")

subplot(2,1,2)
plot(x,line1,"-","LineWidth",10,x,line2,"--","LineWidth",10)
hleg1=legend("solid","dashed")

%added line
set(hleg1,'position',[0.6 0.3 0.3 0.2])

enter image description here

0 голосов
/ 07 сентября 2018

Как указывалось в приведенном выше комментарии, тире имитирует свойства линии на самой фигуре, и она слишком длинна, чтобы ее можно было обработать удобным для вас способом (по крайней мере, в контексте вашего конкретного примера) .

Легенда сама по себе является осевым объектом, позволяющим вам получить и установить его свойства. Вы можете либо увеличить его размер и переместить объекты, которые он содержит, в соответствующие позиции, либо, если вам не особенно важна легенда, имеющая ту же самую точную форму, что и сам график, вы можете заменить ее стиль линии или ширину линии на что-то остальное. Например. попробуйте добавить следующие строки после вашего примера:

a = get(gcf, 'children');
b = get(a(1), 'children');
set(b(1), 'linestyle', ':');

Результат:

image

...