기본 콘텐츠로 건너뛰기

라벨이 graph인 게시물 표시

통계관련 함수와 메서드 사전

A B C d E F G H I K L M N O P Q R S T U V W Z A statsmodels.ap.stats.anova_lm(x) statsmodels.formula.api.ols 에 의해 생성되는 모형 즉, 클래스 인스턴스(x)를 인수로 받아 anova를 실행합니다. np.argsort(x, axis=-1, kind=None) 객체 x를 정렬할 경우 각 값에 대응하는 인덱스를 반환합니다. Axis는 기준 축을 지정하기 위한 매개변수로서 정렬의 방향을 조정할 수 있음(-1은 기본값으로 마지막 축) pandas.Series.autocorr(lag=1) lag에 전달한 지연수에 따른 값들 사이의 자기상관을 계산 B scipy.stats.bernoulli(x, p) 베르누이분포에 관련된 통계량을 계산하기 위한 클래스를 생성합니다. x: 랜덤변수 p: 단일 시행에서의 확률 scipy.stats.binom(x, n, p) 이항분포에 관련된 통계량을 계산하기 위한 클래스를 생성합니다. x: 랜덤변수 n: 총 시행횟수 p: 단일 시행에서의 확률 C scipy.stats.chi2.pdf(x, df, loc=0, scale=1) 카이제곱분포의 확률밀도함수를 계산 $$f(x, k) =\frac{1}{2^{\frac{k}{2}−1}Γ(\frac{k}{2})}x^{k−1}\exp\left(−\frac{x^2}{2}\right)$$ x: 확률변수 df: 자유도 pd.concat(objs, axis=0, join=’outer’, …) 두 개이상의 객체를 결합한 새로운 객체를 반환. objs: Series, DataFrame 객체. Axis=0은 행단위 즉, 열 방향으로 결합, Axis=1은 열단위 즉, 행 방향으

axes and text_R plots

Axes and Text R에서 plot() 함수의 기본 형은 다음과 같습니다.  plot(x, y, main="제목", sub="하위제목", xlab=" ", ylab=" ", xlim=c(최소, 최대), ylim=c(최소, 최대), xlab, ylab, col.lab=축이름의 색, cex.lab=0.75) 위 함수의 매개변수 중 xlab. ylab은 축이름이고 xlim, ylim은 x, y 축의 범위를 나타냅니다.  cex.lab은 축이름의 크기를 지정합니다.  위 함수에서 재목은 title() 함수를 사용하여 별도로 나타낼 수 있습니다.  title(main="제목", col.main=제목의 색, sub="하위제목", col.sub="하위제목의 색") 그래프에 text를 첨가하기 위해 text()와 mtext()를 사용할 수 있습니다.  text(): 그래프 내에 문구를 첨가할 경우 사용합니다.    text(위치1, "삽입문구", 위치2, ...) mtext(): 그래프 외부에 위치시킬 경우 사용합니다.   mtext("삽입할 문구", side,...) 위치1 - x, y 축의 값을 지정하여 해당하는 좌표를 시작으로 문구가 삽입됩니다.  side(위치2) - 그래프 내 또는 외부에 위치를 지정합니다.       위치2 = 1, 2, 3, 4로 지정되면 각각은 below, left, above, right 이외에 cex, col, font를 지정할 수 있는데 각각은 크기, 색, 폰트 스타일을 지정할 수 있습니다.  축 설정  axis() 함수를 사용하여 축을 별도로 설정할 수 있습니다.  axis(위치2, at=, labels=, pos=, lty=, col=, las=, tck=,...) at: 지

다중 그래프 그리기 (ing)

subplot()함수를 사용합니다. 이 함수에는 3개의 정수를 전달합니다. 예로 subplot(abc); a*b는 그래프의 배열을 의미합니다. 즉, a=row, b=column c는 그래프의 번호 입니다.  >>> g1=plt.subplot(121)  >>> n, b, ig=g1.hist(trg, bins=int, normed=True, alpha=0.3)  >>> mu=np.mean(trg)  >>> sd=np.std(trg)  >>> g1.plot(b, norm.pdf(b, mu, sd), color="r", linewidth=2)  >>> g2=plt.subplot(122)  >>> x=stats.probplot(trg, dist="norm", plot=g2)  >>> plt.show() 위의 예는 1행 2열로 배치하여 왼쪽 부터 그림의 번호가 1,2번입니다.

plot_line type:R

R에서 그래프를 작도할 경우 다양한 선택요소가 있습니다. 다음은 그래프에서 데이터들의 위치나 경향을 나타내기 사용하기 위한 인자들입니다. 종류 설명  p 점 표시  l 선 표시 o 점위에 선을 표시  b 점들 사이에 선을 표시  c 점위치에는 공백이고 나머지는 선으로 표시  s 계단식으로 표시(시작을 수평으로) S 계단식으로 표시(시작을 수직으로) h 막대그래프로 표시 n 아무것도 표시하지 않음  단순한 그래프로서 여러가지 종류를 나타낸 것입니다. > h<- 1:10 > f<-50*9.8*h > typ<-c("p","l","o","b","c","s","S", "h", "n") > par(mar=c(4,4,1,1)) > par(mfrow=c(2,2)) > for (i in typ){ +   plot(h, f, xlab="높이(m)", ylab="힘(N)", type=i) +   legend(2, 4000, legend=i) + }

정규분포 알아보기

평균을 중심으로 좌우가 대칭인 분포를 의미합니다. 이 분포의 밀도함수는 다음과 같습니다.  $$ \text{f(x)} = \frac{1}{\sigma \sqrt{2 \pi}} \text{exp}(-\frac{(x-\mu)^2}{2\sigma^2})$$ 이 밀도함수을 기본으로 다음과 같이 정규분포그래프를 작성할 수 있습니다.  우선 밀도함수를 산출하는 함수는  def normalFunS(x, mu,sd):     a=1/(sd*np.sqrt(2*np.pi))     b=np.exp(-(x-mu)**2/(2*sd**2))     return(a*b) >>> import numpy as np >>> import pandas as pd >>> import matplotlib.pyplot as plt  >>> from scipy import stats >>> x=np.random.randn(10000,1) >>> n, bins, ig=plt.hist(x, bins=50, normed=True) >>> mu=np.mean(x) >>> sd=np.std(x) >>> plt.plot(bins, normalFunS(bins, mu, sd), linewidth=2, color="r") >>> plt.show() 이 그래프의 정규성은 scipy모듈의 stats 클래스의 함수 normaltest()를 사용하여 검사할 수 있습니다.  scipy.stats.normaltest(x, axis=0): 객체(x)가 정규분포에 부합하는가를 검정합니다. 즉,  H0: 이 객체는 정규분포를 따른다.  이 검정은 첨도(kurtosis)와 왜도(skew)를 결합하여 검정합니다.  매개변수 axis=

그래프에 컬러 정의 _python

1. 컬러 정의 방법 1) 빨강, 파랑, 초록성분을 3중 원소로하여 여러가지 혼합색을 만들수 있습니다. 색을 나타내는 3개의 원소들 각각은 [0, 1] 사이에 존재합니다. >>> import numpy as np >>> import matplotlib.pyplot as plt >>> d=np.random.randn(5, 5) >>> col=np.identity(3) >>> col array([[ 1.,  0.,  0.], # 빨강        [ 0.,  1.,  0.], # 초록        [ 0.,  0.,  1.]]) #파랑 >>> for i in range(3):            plt.plot(d[:,i], color=col[i, :])        plt.plot(d[:,3], color=np.ones(3)) #[1,1,1] 흰색        plt.plot(d[:,3], color=np.zeros(3)) # [0,0,0] 검정        plt.show() 2) 4중 원소로 색을 표시한다.  색을 나타내는 4개의 원소중 3개의 원소는 1)과 같고 4번째 원소는 투명도를 나타냅니다. >>> plt.plot(d[:,0], color=[1,0,0, 0.2]) >>> plt.plot(d[:,1], color=[0,1,0, 0.5]) >>> plt.plot(d[:,2], color=[0,0,1,0.7]) >>> plt.show() 3) 정의된 이름을 사용 HTML에서 지정된 컬러이름을 사용합니다. name meaning b Blue g green r red c cyan(청록) m magenta(자홍) y yellow k 검정(black) w white

boxplot과 사분위수

box plot 중간값, 사분위수, 최대값, 최소값을 나타냅니다. 사분위수 (Q4)는 25%, 50%, 75%을 기준으로 다음과 같은 값을 나타냅니다. Q1 : 25%에 해당하는 값 Q2 : 50%에 해당하는 값 Q3: 75%에 해당하는 값 데이터에 대한 사분위수 여러 위치에서의 값을 계산하기 위한 함수로 두가지를 적용할 수 있다.  np.percentile(obj, q, axis=None) pd객체.quantile(q=0.5, axis=0) >>> import random >>> import numpy as np >>> import pandas as pd >>> import matplotlib.pyplot as plt >>> d=np.random.randn(100) >>> quant=np.percentile(d, [1, 25, 50, 75, 99]) >>> d_df=pd.DataFrame(d) >>> quant_pd=d_df.quantile([0.01, 0.25, 0.5, 0.75, 0.99]) >>> quant array([-2.07556171, -0.68066232,  0.13129747,  0.74443201,  2.22612439]) >>> quant_pd              0 0.01 -2.075562 0.25 -0.680662 0.50  0.131297 0.75  0.744432 0.99  2.226124 >>> np.mean(d) #평균값   0.062143098969234777 위의 사항을 그래프로 그리기 위해 상자 그림(box plot)을 적용합니다.  위 상자 그래프의 붉은 선은 데이터의 평균을 나타냅니다. 박스는 Q1 <= v

matplotlib의 그래프 종류

1. 산포도(scatter plot) plt.scatter(x, y) >>> import matplotlib.pyplot as plt >>> import numpy as np >>> data=np.random.rand(1024, 2) >>> data[:3, :] >>> plt.scatter(data[:,0], data[:,1]) >>> plt.show() 2. 막대그래프(bar chart) plt.bar(x, hight, width, align='center') 매개변수중 width에 인수를 전달하여 막대의 두께를 조절할 수 있다. 또한 align의 인수는 'center'와 'edge' 이다. 기본값은 'center'이다. 이 값은 x축의 레이블이 막대의 중간에 위치(center) 또는 왼쪽 가장자리에 위치(edge)시킨다. 코드에서 np.random.randint 는 특정한 범위내에서 지정한 갯수의 랜덤수를 생성 np.unique(배열, retrun_counts=False, axis=None) : 객체 내의 중복되지 않은 수들을 반환한다. return_counts=True이면 각 수에 대한 빈도수를 반환한다. axis를 통해 행(1), 열(0)을 선택한다. >>> x=np.random.randint(1, 6, size=100) >>> uni,count=np.unique(x, return_counts=True) >>> uni array([1, 2, 3, 4, 5]) >>> count array([25, 17, 23, 16, 19], dtype=int64) >>> plt.bar(uni, count) >>> plt.show() 위의 막대그래프의 막대의

matplotlib 기본: x, y의 할당

python에서 그래프를 그리기 위해서 matplotlib 모듈을 사용한다.  이 모듈로 부터 그래프를 그리는 가장 기본은 x, y축을 설정하는 것이다. 다음을 보자.  >>> import matplotlib.pyplot as plt >>> x=range(100) >>> y=[i**2 for i in x] >>> plt.plot(x, y) >>> plt.show() 다음은 sin 그래프로서 math 모듈을 사용한다.  >>> import math  >>> t=range(100) >>> x=[(2*math.pi*i)/len(t) for i in t] >>> y=[math.sin(i) for i in x] >>> plt.plot(x, y) >>> plt.show() 위와 같은 math.sin을 사용한 것과 같은 결과를 numpy 모듈을 사용하여 동일한 그래프를 그릴 수 있다.  >>> import numpy as np >>> x=np.linspace(0, 2*np.pi, 100) >>> y=np.sin(x) >>> plt.plot(x, y) >>> plt.show() 다중 그래프를 하나의 플롯에 포함  >>> x=np.array([0,1,2,4,5,6]) >>> y=np.array([0,1,4,16,25,36]) >>> z=np.array([6,5,4,3,2,1]) >>> data=np.c_[x,y,z] >>> data array([[ 0,  0,  6],        [ 1,  1,  5],

plotting_python

Python 데이터 시각화  pyhton에 의한 데이터 시각화에 사용되는 기본 툴은 matplotlib 패키지이다.  이 패키지의 pyplot 함수는 그래프를 생성하고 그래프내의 특정한 부분을 만들며 장식하는 등의 그래프에 어떠한 변화를 만들수 있다. 다음을 보자. import matplotlib.pyplot as plt  import numpy as np import pandas as pd plt.plot(range(1, 5)) plt.ylabel("some numbers") plt.show() plot()함수의 인수로 x, y의 데이터들이 각각 리스트 형태로 전달된다. 둘 중 하나 만이 전달된다면 전달된 인수는 Y 리스트로 인식되어 그에 대응되는 x 값들은 자동적으로 매칭된다. 즉, 위 그래프의 경우 y는 1, 2, 3, 4로 그에 대응되는 x 값들은 0, 1, 2, 3-python에서 수는 0부터 시작된다.-이 된다. 다음과 같이 두 개의 리스트를 인수를 전달하면 첫번째를 x, 두 번째를 y로 인식한다. plt.plot([3,4,5,6], [1,2,3,4]) plt.show() 단일한 그래프 생성  import matplotlib.pyplot as plt  위의 코드로 적용할 라이브러리를 인스톨한다. 이 코드로 이름 plt가 mataplotlib.pyplot와 동일하도록 만든다. 아래 코드는 0~99까지의 x변수를 지정하고 이에 대응하는 y변수를 설정하기 위해 list comprehension 방법을 적용. 즉, 아래의 코드를 식으로 나타내면 다음과 같다.  y=x**2 [0, 99] x=range(100) y=[value**2 for value in x ] plt.plot(x, y) plt.show() 지정된 구간에서의 sin plot은 다음과 같이 나타낼 수 있다. 데이터를 만들기 위해 numpy 패키지를 인스톨한다. impo