2013-01-14 2 views
21

내 분산 형 플롯의 마커 예제에서는 녹색을, 녹색을 가장자리 색으로 설정하고 "|"로 해치합니다. 해치 패턴이 전혀 나타나지 않게하려면 edgecolor를 설정해야하지만, 할 때 마커 주위에 매우 두꺼운 경계선이 생깁니다. 두 가지 질문 :마커 경계 폭과 해치 폭을 변경하는 방법은 무엇입니까?

1)이 경계선의 크기를 어떻게 설정할 수 있습니까?

2) 어떻게 해치 선의 두께를 늘릴 수 있습니까?

http://img204.imageshack.us/img204/9730/markerp.png

감사합니다!

+0

2 : [matplotlib에서 해치의 선폭을 변경하는 방법] (http://stackoverflow.com/questions/29549530/how-to-change-the-linewidth-of-hatch- in-matplotlib) – Henhuy

답변

34
  1. 마커 테두리 두께를 제어하려면 linewidth 만 설정하면됩니다.
  2. 반복 기호를 사용하여 해칭 밀도를 높일 수 있습니다 (아래 예의 경우 '|'이 R/H 창에서 반복됩니다 .NW-> SE 대각선을 얻으려면 기호를 이스케이프해야 함을 유의하십시오. 실제로 많은 문자를 두 번 - '\\\\'은 밀도 2이고 '||||'은 밀도 4입니다. 그러나, 나는 부화 내의 개개의 선의 두께가 제어 가능하다고 생각하지 않는다.

아래의 코드 예제는 다음과 같이 산포도를 생성하는 참조 : collectionsscatterexample hatching control

import matplotlib.pyplot as plt 
# generate some data 
x = [1,2,3,4,5,8] 
y= [i**2 for i in x] 
y2= [60-i**2+3*i for i in x] 

# plot markers with thick borders 
plt.subplot(121) 
plt.scatter(x,y, s=500, marker='s', edgecolor='black', linewidth='3', facecolor='green', hatch='|') 
# compare with no borders, and denser hatch. 
plt.subplot(122) 
plt.scatter(x,y, s=500, marker='s', edgecolor='black', linewidth='0', facecolor='green', hatch='||||') 

plt.show() 

하기 matplotlib 문서를.

+0

해치 선의 너비를 바꿀 수 없다는 것이 맞습니다. (적어도 aggbackend에서) 1로 하드 코딩되어 있습니다. – tacaswell

+0

에 해치의 크기를 조정하는 기능을 추가하는 것은 거대한 것 같습니다 착수 ..... – tacaswell

+0

문자 ''\ ''의 배수를 다룰 때, 파이썬 문자열 곱셈 연산자를 사용하는 것이 도움이 될 수 있습니다. 예를 들어, 문자 이스케이프 때문에 단일 "\"문자의 경우 문자열 ""\\ "'을 사용합니다. 'n' 반복의 경우,'n * "\\"'을 사용할 수 있습니다. 예를 들어'4 * "\\"'는 4 개의'\ '문자의 문자열을줍니다. – naitsirhc

관련 문제