1. 程式人生 > >Matplotlib中幾種常用的圖形(四)

Matplotlib中幾種常用的圖形(四)

條形圖

條形圖常常用來描述一組資料的對比情況,例如:一週七天,每天的城市車流量等。【條形圖有兩個引數x,y】bar()繪製豎直條形圖、barh()繪製水平條形圖。
匯入繪圖工具包:

import matplotlib.pyplot as plt
import numpy as np

繪製豎直條形圖

x = np.linspace(0, 5, 5)
y = np.random.randint(0, 20, size=5)
# 表示先生成15(5*3)個隨機數,然後將它們組裝成5行,那麼每行三個數,對應了顏色的三個組成部分
color = np.random.rand(15).reshape
(5, 3) plt.bar(x, y, alpha=0.8, color=color) plt.show()

繪製出來的圖形如下:
這裡寫圖片描述
水平條形圖的繪製:

plt.barh(x, y)
plt.show()

這裡寫圖片描述

直方圖

直方圖描述了資料中某個範圍內資料出現的頻度。【直方圖的引數只有一個x,不像條形圖需要傳入x,y】。
hist()函式:
—bins:可以使一個bin數量的整數值,也可以使表示bin的一個序列,預設值為10.
—normed:如果值是True,直方圖的值將進行歸一化處理,形成概率密度,預設值時False。
—color:指定直方圖的顏色,可以使單一顏色值或顏色的序列。如果指定了多個數據集合,顏色序列將會設定為相同的順序。如果未指定,將會使用一個預設的線條顏色。
—orientation:通過設定orientation為horizontal建立水平直方圖,預設值為vertical。

x = [np.random.randint(0, n, n) for n in [3000, 4000, 5000]]
bins = [0, 100, 500, 1000, 2000, 3000, 4000, 5000]
labels = ["3k", "4k", "5k"]
plt.hist(x, bins=bins, label=labels)
plt.legend()
plt.show()

這裡寫圖片描述

餅 圖

餅狀圖通常用來表達集合中各個部分的百分比,【餅圖也只有一個引數x!】pie()餅圖適合展示各部分佔總體的比例,條形圖適合比較各部分的大小
普通各部分佔滿餅圖、普通未佔滿餅圖,餅圖陰影、分裂等屬性設定:
—#label引數設定每一塊的標籤;labeldistance引數設定標籤距離圓心的距離(比例值)。
—#autopct引數設定比例值的顯示格式(%1.1f%%); pctdistance引數設定比例值文字距離圓心的距離。
—#explode引數設定每一塊頂點距圓形的長度(比例值);color引數設定每一塊的顏色。
—#shadow引數為布林值,設定是否繪製陰影。
—#startangle設定旋轉角度”’。

普通各部分佔滿餅圖

plt.figure(figsize=(6, 9))    # 調節圖形大小,寬,高
p = np.array([0.7, 0.2, 0.1])
colors = ['red', 'yellow', 'green']
labels = ["dog", "cat", "other"]
plt.pie(p, labels=labels, autopct="%1.2f%%", colors=colors)
plt.axis("equal")               # plt.figure(figsize=(4, 4))
plt.legend()                   # 指明要繪製的圖例
plt.title("Pie chart")
plt.savefig("PieChart.jpg")
plt.show()

這裡寫圖片描述

普通未佔滿餅圖

plt.figure(figsize=(6, 9))
p = np.array([0.6, 0.2, 0.1])
colors = ['red', 'yellow', 'green']
labels = ["dog", "cat", "other"]
plt.pie(p, labels=labels, autopct="%1.2f%%", colors=colors)
plt.axis("equal")
plt.title("Pie chart")
plt.savefig("Pie.jpg")
plt.show()

這裡寫圖片描述

餅圖分裂及陰影

plt.figure(figsize=(6, 6))
p = np.array([0.4, 0.2, 0.15, 0.15, 0.1])
colors = ['red', 'yellow', 'green', 'blue', 'purple']
labels = ["dog", "cat", "bird", "cow", "sheep"]
plt.pie(p, labels=labels, autopct="%1.2f%%", colors=colors, labeldistance=1.2,
        pctdistance=0.5, explode=[0.1, 0.1, 0.1, 0.2, 0.1], shadow=True,
        startangle=90)
plt.axis("equal")
plt.title("Animal Pie Chart")
plt.show()

這裡寫圖片描述

散點圖

【散點圖需要兩個引數x,y,但此時x不是表示x軸的刻度,而是每個點的橫座標!】

x = np.random.randn(1000)
y = np.random.randn(1000)
color = np.random.random(3000).reshape(1000, 3)   # 設定顏色
size = np.random.randint(0, 100, 1000)  # 設定大小
plt.scatter(x, y, color=color, s=size, alpha=0.5)   # alpha設定透明度
plt.show()

這裡寫圖片描述