Ptyhon視覺化:chapter3--繪製並定製化圖表

CopperDong發表於2017-10-04

一、定義圖示型別---柱狀圖、線形圖和堆積柱狀圖

   從matplotlib.pyplot庫的一些常用圖表入手

matplotlib中的基本圖表包括一下元素:

  • x軸和y軸
  • x軸和y軸刻度
  • x軸和y軸刻度標籤
  • 繪圖區域

from matplotlib.pyplot import *

x = [1, 2, 3, 4]
y = [5, 4, 3, 2]

figure()  # create figure

# divide subplots into 2 x 3 grid
# and select #1
subplot(231)
plot(x, y)

subplot(232)
bar(x, y)   #垂直柱狀圖

subplot(233)
barh(x, y)  #水平柱狀圖

subplot(234)
bar(x, y)
# we need more data for stacked bar charts
y1 = [7, 8, 5, 3]
bar(x, y1, bottom=y, color='r')   # 疊加柱狀圖

subplot(235)  #箱線圖
boxplot(x)

subplot(236)
scatter(x, y)  #散點圖

show()
   subplot(231)把圖表分割成2X3的網格,也也可以用subplot(3, 2, 1)

二、簡單的正弦圖和餘弦圖

import matplotlib.pyplot as pl 
import numpy as np 
x = np.linspace(-np.pi, np.pi, 256, endpoint=True)
y = np.cos(x)
y1 = np.sin(x)
pl.plot(x, y)
pl.plot(x, y1)
pl.show()

三、設定座標軸長度和範圍

l = [-1, 1, -10, 10]    # xmin, xmax, ymin, ymax

axis(l)

新增新的座標軸,可以呼叫matplotlib.pyplot.axes()方法。如果需要幾個不同的檢視來表達相同的資料的不同屬性值,這就需要在一張圖中組合顯示多個圖表

新增一條線,可以呼叫matplotlib.pyploty.axhline() or matplotlib.pyplot.axvline()

四、設定圖表的線型、屬性和格式化字串

  一種常用的方式是: plot(x, y, linewidth=1.5)

       另一種

    lines = plot(x, y)

              setp(lines, 'linewidth', 1.5)

       用來改變線條的所有屬性都包含在matplotlib.lines.Line2D累中





五、設定刻度、刻度標籤和網路

   刻度定位器(tick locator) -- 指定刻度所在的位置

   刻度格式器(tick formatter) -- 指定刻度顯示的樣式

六、新增圖例和註解

from matplotlib.pyplot import *
import numpy as np 
x1 = np.random.normal(30, 3, 100)
x2 = np.random.normal(20, 2, 100)
x3 = np.random.normal(10, 3, 100)
plot(x1, label='plot')
plot(x2, label='2nd plot')
plot(x3, label='last plot')
#generate a legend box
legend(bbox_to_anchor=(0., 1.02, 1., .102), loc=3, ncol=3, mode="expand", borderaxespad=0.)
annotate("Important value", (55,20), xycoords='data', xytext=(5,38), arrowprops=dict(arrowstyle='->'))
show()

七、移動軸線到圖中央


八、繪製直方圖

  matplotlib.pyploy.hist()來建立直方圖

九、繪製誤差條形圖


十、繪製餅圖


十一、繪製填充區域的圖表


十二、繪製帶彩色標記的散點圖

import matplotlib.pyplot as plt 
import numpy as np 
x = np.random.randn(1000)
y1 = np.random.randn(len(x))
y2 = 1.2 + np.exp(x)
ax1 = plt.subplot(121)
plt.scatter(x, y1, color='indigo', alpha=0.3, edgecolors='white', label='no correl')
plt.xlabel('no correlation')
plt.grid(True)
plt.legend()

ax2 = plt.subplot(122, sharey=ax1, sharex=ax1)
plt.scatter(x, y2, color='green', alpha=0.3, edgecolors='gray', label='correl')
plt.xlabel('strong correlation')
plt.grid(True)
plt.legend()

plt.show()

   



  



相關文章