2015-01-20 2 views
0

ipython 노트북에서 matplotlib를 사용하여 이상한 동작이 발생합니다. barchart의 "color"특성을 변경할 때 결과가 추악 해지고 일부 막대가 빨간색으로 표시되고 일부는 검정색으로 표시됩니다. . 이것은 표시 할 막대의 수가 많을 때만 발생합니다 (> 100).Python : matplotlib barchart의 이상한 동작

넌 바의 수의 효과를 확인하기 위해 데이터 포인트를 매개로 재생하는 문제를 재현 다음 코드를 실행할 수

:

Output : 여기

import random 
import matplotlib.pyplot as plt 

dataPoints = 400 
data = random.sample(range(300, 1000), dataPoints) 
xCoords = range(dataPoints) 

fig = plt.figure(figsize=[13,9]) 
plt.bar(xCoords,data,color='red') 
plt.show() 

결과의 예는

답변

1

막대를 확대하면 실제로는 검은 색 막대가 표시됩니다. 검은 색은 막대 주위의 검은 색 테두리와 화면의 픽셀에 맞는 보간의 결과입니다.

당신은 당신의 이미지에 빨간색으로 만 사용 빨간색 테두리의 색상을 변화하도록 할 수있는 일

plt.bar(xCoords, data, color='red', edgecolor='red') 
+0

edgecolor 매개 변수를 사용하면 훨씬 더 깨끗한 결과를 얻을 수 있습니다. – Worthatry

3

pyplot의 문제가 아니며 코드 또는 iPython 버전에서 문제가되지 않습니다.

그냥 해상도 문제입니다. dataPoints (귀하의 경우 400)을 너무 많이 추가하고 있으므로 너무 많은 상자가 생성됩니다 !! 이렇게하면 생성되는 기본 플롯에서 오버랩됩니다.

200 dataPoints와 기본 막대 그래프 플롯이

enter image description here

처럼 보이지만 당신이 살펴보고 확대 할 때, 당신은 당신의 쓰레기통이 실제로 구분되는 것을 볼 수 있고, 검은 선이 분명 지금은 아니다 명백한.

enter image description here

은 위의 200 dataPoints와 프로그램의 같은 실행합니다.

+1

작은 보정 : 그들은 "사라"하지 않습니다, 그들은 여전히 ​​거기에 내가 생각하는 것 그들은 바의 경계 때문입니다. 그것은 분명히 여전히 존재합니다. – Ffisegydd

+0

@Ffisegydd : 그렇습니다. 당신은 사실입니다. 그러나 이것이 유일한 대답이라고 생각합니다 !! 나는 제안 된 편집을 추가 할 것입니다 – ThePredator

+1

아니요 당신이 맞다는 것에 동의합니다 :) 그것은 단지 검은 색이 사라지지 않고 더 이상 문제가되지 않습니다 (이것은 "당신이 틀렸어!" 수정) – Ffisegydd