利用Python進行數據分析_Pandas_繪圖和可視化_Matplotlib


1 認識Figure和Subplot

import matplotlib.pyplot as plt

 

matplotlib的圖像都位於Figure對象中

fg = plt.figure()

通過add_subplot創建subplot

ax1 = fg.add_subplot(1,2,1)
ax2 = fg.add_subplot(1,2,2)

設置坐標軸的范圍

plt.xlim((-1, 1))
plt.ylim((0, 3))

設置坐標軸的lable

matplotlib.pyplot.xlabel(xlabel, fontdict=None, labelpad=None, **kwargs)
plt.xlabel('橫軸:時間', fontproperties = 'SimHei', fontsize = 15, color = 'green')

plt.ylabel('縱軸:振幅', fontproperties = 'SimHei', fontsize = 15)

 

plt.figure()的作用

如下例子中,plt.subplot()如果不加,則4個圖都在同一個figure對象匯總,而加上plt.subplot(),則每個圖分別在一個figure對象中

import matplotlib.pyplot as plt
import pandas as pd
from numpy.random import randn

x = np.linspace(-1, 1, 50)

y1 = 2 * x + 1
# plt.figure()
ax1 = plt.subplot(4,2,1)
ax1.plot(x, y1)

y2 = x**2
# plt.figure()
ax2 = plt.subplot(4,2,2)
ax2.plot(x, y2)

y3 = 2*x+1
# plt.figure()
ax3 = plt.subplot(4,2,3)#plt.subplot(3,2,4) :  分成3行2列,共6個繪圖區域,在第4個區域繪圖。排序為行優先。也可 plt.subplot(324),將逗號省略。
ax3.plot(x, y3)

y4 = x**2
# plt.figure()
ax4 = plt.subplot(4,2,4)
ax4.plot(x, y4)

plt.show()

plt的常用函數

plt.scatter#(數據,點的大小)  繪制單個點

plt.show()# 顯示出來

plt.title #(名字,大小)

plt.xlable()

plt.ylable()

plt.tick_params()#設置刻度的大小

plt.axis([0,1100,0,111000]) # 設置坐標軸的取值范圍

plt.scatter(x_values, y_values, c=y_values, cmap=plt.cm.Blues,
edgecolor='none', s=40)  # 把顏色設置為一個動態的變量,並使用cmp高數pylot使用哪個顏色的映射

plt.savefig(“squares_plot.png”,bbox_inches = "tight")# 第一個參數指定要以什么樣的文件名保存圖表,第二個參數指定將圖標多余的空白區域裁掉

plt.axes().get_xaxis().set_visible(false)# 使x軸不可見

plt.figure(figsize = (10,6)) #  設置繪圖窗口的尺寸

 

plt的圖表函數

plt.plot(x,y , fmt)  :繪制坐標圖

plt.boxplot(data, notch, position): 繪制箱形圖

plt.bar(left, height, width, bottom) : 繪制條形圖

plt.barh(width, bottom, left, height) : 繪制橫向條形圖

plt.polar(theta, r) : 繪制極坐標圖

plt.pie(data, explode) : 繪制餅圖

plt.scatter(x, y) :繪制散點圖

plt.hist(x, bings, normed) : 繪制直方圖

 fig,axes = plt.subplots()

import numpy as np
import matplotlib.pyplot as plt
fig,axes = plt.subplots(2,3)
plt.subplots_adjust(wspace=0,hspace=0)# wspace控制寬度百分比,hspace控制高度的百分比,用作subplot之間的距離
axes[1,2]

 

import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 2*np.pi, 400)
y = np.sin(x**2)

fig,axes = plt.subplots(2,3)
plt.subplots_adjust(wspace=0,hspace=0)# wspace控制寬度百分比,hspace控制高度的百分比,用作subplot之間的距離
axes[1,2].plot(x,y)
plt.show()

 顏色、標記、線型

詳見:API文檔

axes.plot(x,y,'g--')

 

Colors

 

Markers

Line Styles

 

 刻度、標簽、圖例

plt.xlim() #返回當前的X軸的范圍
plt.xlim(0,10)#設置當前的X軸的范圍

修改X軸刻度

import numpy as np
import matplotlib.pyplot as plt

plt.figure()
ax = plt.subplot()
ax.plot(randn(1000).cumsum())
# ax.set_xticks([0,250,500,750,1000])
ax.set_xticklabels(['1w','2w','3w','4w','5w','6w','7w'],rotation=30,fontsize='small')

ax.set_title('Test plot!')

plt.show()

 

import numpy as np
import matplotlib.pyplot as plt

plt.figure() #創建figure對象

ax = plt.subplot() 

# 一張圖中 傳入多個元素,需要傳入label參數
ax.plot(randn(1000).cumsum(),'g--',label='180210.IB',)
ax.plot(randn(1000).cumsum(),'c.',label='170201.IB',)
ax.plot(randn(1000).cumsum(),'m:',label='180201.IB',)

# ax.legend(loc='best') # 添加圖例(左上角那玩意)
plt.legend(loc='best') # 添加圖例(左上角那玩意)

ax.set_title('Test plot!') #設置圖標的標題
plt.savefig('D:\Test plot.svg')
plt.savefig('D:\Test plot.pdf')
plt.savefig('D:\Test plot.jpg')
plt.savefig('D:\Test plot.png',dpi=400,bbox_inches = 'tight') #保存png格式,dpi 分辨率,bbox_inches 最小白邊
plt.show()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM