使用matplotlib繪圖

import numpy as np

import matplotlib.pyplot as plt

%matplotlib inline

# 使用%matplotlib命令可以將matplotlib的圖表直接嵌入到Notebook之中,或者使用指定的界面庫顯示圖表叶堆,它有一個(gè)參數(shù)指定matplotlib圖表的顯示方式抠璃。inline表示將圖表嵌入到Notebook中勇劣。

plt.rcParams['font.sans-serif']=['SimHei']

# 用來正常顯示中文標(biāo)簽

plt.rcParams['axes.unicode_minus']=False

# 用來顯示正負(fù)號

X=np.linspace(0,2*np.pi,100)# 均勻的劃分?jǐn)?shù)據(jù)

Y=np.sin(X)

Y1=np.cos(X)

plt.title("Hello广匙,matplotlib;】伞`易帧!")

plt.plot(X,Y)

plt.plot(X,Y1)


X=np.linspace(0,2*np.pi,100)

Y=np.sin(X)

Y1=np.cos(X)

plt.subplot(211)

plt.plot(X,Y,color='dodgerblue')

plt.subplot(212)

plt.plot(X,Y1,color = 'r')


# 柱狀圖

?柱狀圖一般用來統(tǒng)計(jì)一些類型的數(shù)量掸掸,例如不同產(chǎn)品的銷售額氯庆。柱狀圖一般有兩種,一個(gè)是傳統(tǒng)的猾漫,一個(gè)是疊加的。

data=[10,35,60,40]

plt.bar(range(len(data)),data)

plt.title('柱狀圖')


data=[10,35,60,40]

plt.barh(range(len(data)),data)

plt.title('水平柱狀圖')


data = [[5,25,50,20],

? ? ? ? [4,23,30,18],

? ? ? ? [6,22,90,10]]

X = np.arange(4)

plt.bar(X+0.00,data[0],color='b',width=0.25,label="A")

plt.bar(X+0.25,data[1],color='g',width=0.25,label="B")

plt.bar(X+0.50,data[2],color='r',width=0.25,label="C")

# 顯示上面設(shè)置的 lable

plt.legend()

plt.title('多個(gè)柱狀圖')


data = [[5,25,50,20],

? ? ? ? [4,23,30,18],

? ? ? ? [6,22,90,10]]

X = np.arange(4)

plt.bar(X, data[0], color = 'b', width = 0.25)

plt.bar(X, data[1], color = 'g', width = 0.25,bottom=data[0])

plt.bar(X, data[2], color = 'r', width = 0.25,bottom = np.array(data[0]) + np.array(data[1]))

plt.title('疊加型柱狀圖')

plt.show()


散點(diǎn)圖

散點(diǎn)圖用來衡量兩個(gè)連續(xù)變量之間的相關(guān)性

N = 50

x = np.random.rand(N)

y = np.random.rand(N)

plt.scatter(x,y)

plt.title('普通散點(diǎn)圖')



N = 50

x = np.random.rand(N)

y = np.random.rand(N)

colors = np.random.randn(N)

# 顏色可以用數(shù)值表示

area = np.pi * (15 * np.random.rand(N))**2

# 調(diào)整大小

plt.scatter(x,y,c=colors,alpha=0.5, s = area)


N = 30

x = np.random.rand(N)

y = np.random.rand(N)

colors = np.random.randint(0,2,size =30)

colors = np.random.randint(0,2,size = 30)

plt.scatter(x,y,c=colors,alpha=0.5,s = area)


直方圖

直方圖是用來衡量連續(xù)變量的概率分布的感凤。在構(gòu)建直方圖之前悯周,我們需要先定義好bin(值的范圍),也就是說我們需要先把連續(xù)值劃分成不同等份陪竿,然后計(jì)算每一份里面數(shù)據(jù)的數(shù)量

a = np.random.rand(60)

plt.hist(a,bins=20)

plt.ylim(0,15)


a = np.random.randn(1000)

plt.hist(a,bins=50)

plt.title("標(biāo)準(zhǔn)正態(tài)分布")


盒圖

boxplot用于表達(dá)連續(xù)特征的百分位數(shù)分布禽翼。統(tǒng)計(jì)學(xué)上經(jīng)常被用于檢測單變量的異常值,或者用于檢查離散特征和連續(xù)特征的關(guān)系

x = np.random.randint(20,100,size=(30,3))

plt.boxplot(x)

plt.ylim(0,120)

# 在x軸的什么位置填一個(gè)label族跛,我們這里制定在1闰挡,2,3位置礁哄,寫上ABC

plt.xticks([1,2,3],['A','B','C'])

plt.hlines(y = np.median(x,axis = 0)[0],xmin=0,xmax=3)



添加描述性文字

增加文字

plt.text(x, y, s, fontdict=None, withdash=False, **kwargs)

# 設(shè)置畫布顏色為blue

fig, ax =plt.subplots(facecolor='blue')

# y軸數(shù)據(jù)

data =[[5,25,50,20],

? ? ? [4,23,51,17],

? ? ? [6,22,52,19]]

X = np.arange(4)

plt.bar(X+0.00, data[0], color='darkorange',width = 0.25,label='A')

plt.bar(X+0.25, data[1], color='steelblue',width = 0.25,label='B')

plt.bar(X+0.50, data[2], color='violet',width = 0.25,label='C')

ax.set_title('Figure 2')

plt.legend()

W = [0.00,0.25,0.50]

for i in range(3):

? ? for a,b in zip(X+W[i],data[i]):

? ? ? ? plt.text(a,b,"%.0f"%b,ha="center",va="bottom")


plt.xlabel("Group")

plt.ylabel("Num")

plt.text(0.0,48,"TEXT")



注釋地另一種方法:annotate

在數(shù)據(jù)可視化的過程中长酗,圖片中的文字經(jīng)常被用來注釋圖中的一些特征。使用annotate()方法可以很方便地添加此類注釋桐绒。在使用annotate時(shí)夺脾,要考慮兩個(gè)地方的坐標(biāo)(text只需要一個(gè)):被注釋的地方xy(x, y)和插入文本的地方xytext(x, y)

X = np.linspace(0,2*np.pi,100)# 均勻的劃分?jǐn)?shù)據(jù)

Y = np.sin(X)

Y1 = np.cos(X)

plt.plot(X,Y)

plt.plot(X,Y1)

plt.annotate('Points',

? ? ? ? ? ? xy=(1,np.sin(1)),

? ? ? ? ? ? xytext=(2,0.5), fontsize=16,

? ? ? ? ? ? arrowprops=dict(arrowstyle="->"))

plt.title("這是一副測試圖!")


%pylab inline

pylab.rcParams['figure.figsize'] = (10, 6) # 調(diào)整圖片大小

# np.random.seed(19680801)

n_bins = 10

x = np.random.randn(1000, 3)

fig, axes = plt.subplots(nrows=2, ncols=2)

ax0, ax1, ax2, ax3 = axes.flatten()

colors = ['red', 'tan', 'lime']

ax0.hist(x, n_bins, normed=1, histtype='bar', color=colors, label=colors)

ax0.legend(prop={'size': 10})

ax0.set_title('bars with legend')

ax1.hist(x, n_bins, normed=1, histtype='bar', stacked=True)

ax1.set_title('stacked bar')

ax2.hist(x, n_bins, histtype='step', stacked=True, fill=False)

ax2.set_title('stack step (unfilled)')

# Make a multiple-histogram of data-sets with different length.

x_multi = [np.random.randn(n) for n in [10000, 5000, 2000]]

ax3.hist(x_multi, n_bins, histtype='bar')

ax3.set_title('different sample sizes')

%pylab inline


import pandas as pd

df = pd.DataFrame(np.random.rand(50, 2), columns=['a', 'b'])

# 散點(diǎn)圖

df.plot.scatter(x='a', y='b')


df = pd.DataFrame(np.random.rand(10,4),columns=['a','b','c','d'])

# 繪制柱狀圖

df.plot.bar()


# 堆積的柱狀圖

df.plot.bar(stacked=True)


# 水平的柱狀圖

df.plot.barh(stacked=True)


df = pd.DataFrame({'a':np.random.randn(1000)+1,'b':np.random.randn(1000),'c':np.random.randn(1000) - 1}, columns=['a', 'b', 'c'])

# 直方圖

df.plot.hist(bins=20)


# 盒圖

df = pd.DataFrame(np.random.rand(10, 5), columns=['A', 'B', 'C', 'D', 'E'])

df.plot.box()


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末茉继,一起剝皮案震驚了整個(gè)濱河市咧叭,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌烁竭,老刑警劉巖菲茬,帶你破解...
    沈念sama閱讀 218,036評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異派撕,居然都是意外死亡婉弹,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評論 3 395
  • 文/潘曉璐 我一進(jìn)店門终吼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來马胧,“玉大人,你說我怎么就攤上這事衔峰∨寮梗” “怎么了蛙粘?”我有些...
    開封第一講書人閱讀 164,411評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長威彰。 經(jīng)常有香客問我出牧,道長,這世上最難降的妖魔是什么歇盼? 我笑而不...
    開封第一講書人閱讀 58,622評論 1 293
  • 正文 為了忘掉前任舔痕,我火速辦了婚禮,結(jié)果婚禮上豹缀,老公的妹妹穿的比我還像新娘伯复。我一直安慰自己,他們只是感情好邢笙,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,661評論 6 392
  • 文/花漫 我一把揭開白布啸如。 她就那樣靜靜地躺著,像睡著了一般氮惯。 火紅的嫁衣襯著肌膚如雪叮雳。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,521評論 1 304
  • 那天妇汗,我揣著相機(jī)與錄音帘不,去河邊找鬼。 笑死杨箭,一個(gè)胖子當(dāng)著我的面吹牛寞焙,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播互婿,決...
    沈念sama閱讀 40,288評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼棺弊,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了擒悬?” 一聲冷哼從身側(cè)響起模她,我...
    開封第一講書人閱讀 39,200評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎懂牧,沒想到半個(gè)月后侈净,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,644評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡僧凤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,837評論 3 336
  • 正文 我和宋清朗相戀三年畜侦,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片躯保。...
    茶點(diǎn)故事閱讀 39,953評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡旋膳,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出途事,到底是詐尸還是另有隱情验懊,我是刑警寧澤擅羞,帶...
    沈念sama閱讀 35,673評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站义图,受9級特大地震影響减俏,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜碱工,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,281評論 3 329
  • 文/蒙蒙 一娃承、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧怕篷,春花似錦历筝、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蹂析,卻和暖如春舔示,著一層夾襖步出監(jiān)牢的瞬間碟婆,已是汗流浹背电抚。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留竖共,地道東北人蝙叛。 一個(gè)月前我還...
    沈念sama閱讀 48,119評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像公给,于是被迫代替她去往敵國和親借帘。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,901評論 2 355