飞道的博客

Python数据分析——Matplotlib数据可视化基础(一)

290人阅读  评论(0)

Python数据分析——Matplotlib数据可视化基础(一)

思维导图:

图像的数组表示

图像的RGB色彩模式
  • RGB三个颜色通道的变化和叠加得到各种颜色,其中R红色,取值范围,0-255
    G绿色,取值范围,0-255
    B蓝色,取值范围,0-255。RGB形成的颜色包括了人类示例所能感知的所有颜色。
PIL库
  • PIL(Python Image Library):是一个具有强大图像处理能力的第三方库
  • 引入图像类:
from PIL import Image 
  • Image是PIL库中代表一个图像的类(对象)
图像的数组表示
  • 图像是一个由像素组成的二维矩阵,每个元素是一个RGB值

例:

from PIL import Image
import numpy as np
im = np.array(Image.open("‪C:/Users/sssss/.spyder-py3/123.jpg"))
print(im.shape,im.dtype)

图像的变换

  • 读入图像后,获得像素RGB值,修改后保存为新的文件

例:

from PIL import Image
import numpy as np
a = np.array(Image.open("‪C:/Users/sssss/.spyder-py3/123.jpg"))
print(a.shape,a.dtype)
b = [255,255,255] -a
im = Image.fromarray(b.astype('uint8'))
im.save("‪C:/Users/sssss/.spyder-py3/1234.jpg")

将彩色照片变成灰度图片:

from PIL import Image
import numpy as np
a = np.array(Image.open("C:/Users/sssss/.spyder-py3/123.jpg").convert('L'))
b = 255 - a
im = Image.fromarray(b.astype('uint8'))
im.save("‪C:/Users/sssss/.spyder-py3/1234.jpg")

Matplotlib库的介绍

  • Matplotlib库由各种可视化类构成,内部结构负责,受Matlab启发
  • Matplotlib.pyplot是绘制各类可视化图形的命令子库,相当于快捷方式。
import matplotlib.pyplot as plt
  • plt:引入模块的别名
添加画布内容

存与展示图形

例1:

import matplotlib.pyplot as plt

plt.plot([3,1,4,5,2]) 
plt.ylabel("grade")
plt.savefig('test',dpi=600) #PNG文件
plt.show()

  • plt.savefig():将输出图形存储为文件,默认PNG格式,可以通过dpi修改输出质量

例2:

plt.plot([0,2,4,6,8],[3,1,4,5,2]) 
plt.ylabel("grade")
plt.axis([-1,10,0,6])
plt.show()

  • plt.plot(x,y):当有两个以上参数时,按照x轴和y轴顺序绘制数据点

pyplot的plot()函数

plt.plot(x,y,format_string,**kwargs)
  • x:x轴数据,列表或数组,可选
  • y:y轴数据,列表或数组
  • format_string:控制曲线的格式字符串,可选由颜色字符、风格字符和标记字符组成


  • **kwargs:第二组或更多(x,y,format_string)
  1. color:控制颜色,color=‘black’
  2. linestyle:线条风格,linestyle=‘dashed’
  3. marker:标记风格,marker=‘0’
  4. markerfacecolor:标记颜色,markerfacecolor=‘blue’

注:当绘制多条曲线时,各条曲线的x不能省略

例:

import matplotlib.pyplot as plt
import numpy as np

a = np.arange(10)
plt.plot(a,a*1.5,'go-',a,a*2.5,'rx',a,a*3.5,'*',a,a*4.5,'b-,')
plt.show()

pyplot的中文显示

  • 第一种:pyplot并不默认支持中文显示,需要rcParams修改字体实现

例1:

import matplotlib.pyplot as plt
import matplotlib

matplotlib.rcParams['font.family']='SimHei'  #黑体
plt.plot([3,1,4,5,2])
plt.ylabel("纵轴(值)")
plt.savefig('test',dpi=600)
plt.show()

  • rcParams属性:

    例2:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib

matplotlib.rcParams['font.family']='STSong'  
matplotlib.rcParams['font.size']=20

a = np.arange(0.0,5.0,0.02)
plt.xlabel('横轴:时间')
plt.ylabel('纵轴:振幅')
plt.plot(a,np.cos(2*np.pi*a),'r--')
plt.show()

  • 第二种方法:在有中文输出的地方,增加一个属性:fontproperties(建议使用)
import numpy as np
import matplotlib.pyplot as plt

a = np.arange(0.0,5.0,0.02)

plt.xlabel('横轴:时间',fontproperties='SimHei',fontsize=20)
plt.ylabel('纵轴:振幅',fontproperties='SimHei',fontsize=20)
plt.plot(a,np.cos(2*np.pi*a),'r--')
plt.show()

pyplot子绘图区域

plt.subplot2grid(GrindSpec,CurSpec,colspan=1,rowspan=1)

例:

import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec

gs = gridspec.GridSpec(3,3)

ax1 = plt.subplot(gs[0,:])
ax2 = plt.subplot(gs[1,:-1])
ax3 = plt.subplot(gs[1:,-1])
ax4 = plt.subplot(gs[2,0])
ax5 = plt.subplot(gs[2,1])


转载:https://blog.csdn.net/DTRblank/article/details/106521953
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场