数据分析之Matplotlib绘图-01
2017-10-30 19:33
561 查看
01-图片的灰度化处理
(1)最大值法 使转化后的R,G,B的值等于转化前的3个值中的最大的一个,即: R=G=B=max(R,G,B) 这种转化的灰度图亮度很高 im_data1 = im_data.max(axis = 2) (2)平均值法 使转化后的R,G,B的值等于转化前的3个的平均值,即: R=G=B=(R+G+B)/3 这种方法产生的灰度图像比较柔和。 im_data2 = im_data.mean(axis=-1) (3)加权平均法 按照一定值对R,G,B的值加权平均。 #红绿蓝的权重 a = np.array([0.299,0.587,0.114]) #red*0.299+green*0.587+blue*0.114 #矩阵乘法 im_data3 = np.dot(im_data,a)
02-Matplotlib基础知识
Matplotlib中的基本图表包括的元素
Matplotlib中的基本图表包括的元素1. x轴和y轴
1. 水平和垂直的轴线
1. x轴和y轴刻度
1. 刻度标示坐标轴的分隔,包括最小刻度和最大刻度
1. x轴和y轴刻度标签
1. 表示特定坐标轴的值
1. 绘图区域
1. 实际绘图的区域
2.
画曲线
一条曲线 x = np.arange(0.0,6.0,0.01) plt.plot(x, x**2) plt.show() 多条曲线 x = np.arange(1, 5) plt.plot(x, x*1.5, x, x*3.0, x, x/3.0) plt.show()
网格线
设置grid参数(参数与plot函数相同) lw代表linewidth,线的粗细 alpha表示线的明暗程度 # 使用子图显示不同网格线对比 fig = plt.figure(figsize=(20,3)) x = np.linspace(0, 5, 100) # 使用默认网格设置 ax1 = fig.add_subplot(131) ax1.plot(x, x**2, x, x**3,lw=2) ax1.grid(True) # 显式网格线 # 对网格线进行设置 ax2 = fig.add_subplot(132) ax2.plot(x, x**2, x, x**4, lw=2) ax2.grid(color='r', alpha=0.5, linestyle='dashed', linewidth=0.5) # grid函数中用与plot函数同样的参数设置网格线 # 对网格线进行设置 ax3 = fig.add_subplot(133) ax3.plot(x, x**2, x, x**4, lw=2) ax3.grid(color='r', alpha=0.5, linestyle='-.', linewidth=0.5) # grid函数中用与plot函数同样的参数设置网格线
坐标轴界限axis方法设置
x = np.arange(1, 5) plt.plot(x, x*1.5, x, x*3.0, x, x/3.0) # plt.axis() # shows the current axis limits values;如果axis方法没有任何参数,则返回当前坐标轴的上下限 # (1.0, 4.0, 0.0, 12.0) # plt.axis([0, 15, -5, 13]) # set new axes limits;axis方法中有参数,设置坐标轴的上下限;参数顺序为[xmin, xmax, ymin, ymax] plt.axis(xmax=5,ymax=23) # 可使用xmax,ymax参数 plt.show() 设置紧凑型坐标轴 x = np.arange(1, 5) plt.plot(x, x*1.5, x, x*3.0, x, x/3.0) plt.axis('tight') # 紧凑型坐标轴 plt.show() plt除了axis方法设置坐标轴范围,还可以通过xlim,ylim设置坐标轴范围 x = np.arange(1, 5) plt.plot(x, x*1.5, x, x*3.0, x, x/3.0) plt.xlim([0, 5]) # ylim([ymin, ymax]) plt.ylim([-1, 13]) # xlim([xmin, xmax]) plt.show()
坐标轴标签
plt.plot([1, 3, 2, 4]) plt.xlabel('This is the X axis') plt.ylabel('This is the Y axis') plt.show()
坐标轴标题
plt.plot([1, 3, 2, 4]) plt.title('Simple plot') plt.show()
图例legend
legend方法 两种传参方法: 【推荐使用】在plot函数中增加label参数 在legend方法中传入字符串列表 方法一: x = np.arange(1, 5) plt.plot(x, x*1.5, label='Normal') # 在plot函数中增加label参数 plt.plot(x, x*3.0, label='Fast') plt.plot(x, x/3.0, label='Slow') plt.legend() plt.show() 方法二: x = np.arange(1, 5) plt.plot(x, x*1.5) plt.plot(x, x*3.0) plt.plot(x, x/3.0) plt.legend(['Normal', 'Fast', 'Slow']) # 在legend方法中传入字符串列表 plt.show()
ncol参数控制图例中有几列
x = np.arange(1, 5) plt.plot(x, x*1.5, label='Normal') plt.plot(x, x*3.0, label='Fast') plt.plot(x, x/3.0, label='Slow') plt.legend(loc=0, ncol=2) # ncol控制图例中有几列 plt.show()
line style
plt.plot(np.random.randn(1000).cumsum(), linestyle = ':',marker = '.', label='one') plt.plot(np.random.randn(1000).cumsum(), 'r--', label='two') plt.plot(np.random.randn(1000).cumsum(), 'b.', label='three') plt.legend(loc='best') # loc='best' plt.show()
图片保存
filename 含有文件路径的字符串或Python的文件型对象。图像格式由文件扩展名推断得出,例如,.pdf推断出PDF,.png推断出PNG (“png”、“pdf”、“svg”、“ps”、“eps”……) dpi 图像分辨率(每英寸点数),默认为100 facecolor 图像的背景色,默认为“w”(白色) x = np.random.randn(1000).cumsum() fig = plt.figure(figsize = (10,3)) splt = fig.add_subplot(111) splt.plot(x) fig.savefig(filename = "filena.eps",dpi = 100,facecolor = 'g')
03-设置plot的风格和样式
1.点和线的样式。- 颜色
参数color或c 五种定义颜色值的方式 别名 color='r' 合法的HTML颜色名 color = 'red' HTML十六进制字符串 color = '#eeefff' 归一化到[0, 1]的RGB元组 color = (0.3, 0.3, 0.4) 灰度 color = (0.1)
透明度
# 透明度 y = np.arange(1, 3) plt.plot(y, c="red", alpha=0.1); # 设置透明度 plt.plot(y+1, c="red", alpha=0.5); plt.plot(y+2, c="red", alpha=0.9);
背景色
设置背景色,通过plt.subplot()方法传入facecolor参数,来设置坐标轴的背景色 plt.subplot(facecolor='cyan'); plt.plot(np.random.randn(10),np.arange(1,11))
线型
线型
线宽
不同宽度破折线
点型
多参数连用
更多点和线的设置
在一条语句中多个曲线进行设置
三种设置方式
2.X,Y轴坐标的刻度。
xticks()和yticks()方法
x = [5, 3, 7, 2, 4, 1] plt.plot(x); plt.xticks(range(len(x)), ['a', 'b', 'c', 'd', 'e', 'f']); # 传入位置和标签参数,以修改坐标轴刻度 plt.yticks(range(1, 8, 2)); plt.show()
面向对象方法
set_xticks、set_yticks、set_xticklabels、set_yticklabels方法 fig = plt.figure(figsize=(10, 4)) ax = fig.add_subplot(111) x = np.linspace(0, 5, 100) ax.plot(x, x**2, x, x**3, lw=2) ax.set_xticks([1, 2, 3, 4, 5]) ax.set_xticklabels(['a','b','c','d','e'], fontsize=18) yticks = [0, 50, 100, 150] ax.set_yticks(yticks) ax.set_yticklabels([y for y in yticks], fontsize=18); # use LaTeX formatted labels
正弦余弦:LaTex语法,用π等表达式在图表上写上希腊字母
x = np.arange(-np.pi,np.pi,0.01) plt.figure(figsize=(12,9)) plt.plot(x,np.sin(x),x,np.cos(x)) plt.axis([x.min()-1,x.max()+1,-1.2,1.2]) #xticks:参数一刻度,参数二,对应刻度上的值 plt.xticks(np.arange(-np.pi,np.pi+1,np.pi/2), ['$-\delta$','$-\pi$/2','0','$\pi$/2','$\pi$'],size = 20) plt.yticks([-1,0,1],['min','0','max'],size = 20) plt.show()
相关文章推荐
- matplotlib绘图进行数据分析
- python数据分析之(6)简单绘图matplotlib.pyplot
- 使用python中的matplotlib进行绘图分析数据
- 数据分析之Matplotlib绘图-02
- 数据分析与展示——Matplotlib基础绘图函数示例
- Python进阶(三十九)-数据可视化の使用matplotlib进行绘图分析数据
- matplotlib -- 使用python中的matplotlib进行绘图分析数据
- 使用matplotlib中的scatter绘图函数分析iris数据集中的特征属性
- 使用python中的matplotlib进行绘图分析数据
- python数据分析复盘——数据分析相关库之Matplotlib
- 《机器学习实战》2.2.2分析数据:使用matplotlib创建散点图
- chap2 kNN算法 2.2.2 分析数据:使用Matplotlib创建散点图
- python数据挖掘课程 十一.Pandas、Matplotlib结合SQL语句可视化分析
- Python 数据分析之matplotlib
- [python之数据分析] 基础篇1- Numpy,Scipy,Matplotlib 快速入门攻略
- 金融衍生品数据分析_大数据_numpy,matplotlib,pandas学习
- Python seaborn matplotlib 对数据进行图表分析
- 【Python数据分析】四级成绩分布 -matplotlib,xlrd 应用
- Python数据可视化利器Matplotlib,绘图入门篇,Pyplot介绍
- python数据挖掘课程 十二.Pandas、Matplotlib结合SQL语句对比图分析