matplot绘图
2019-10-19 17:22
1441 查看
Matplotlib
Matplotlib 是一个 Python 的 2D绘图库,通过 Matplotlib,开发者可以仅需要几行代码,便可以生成绘图,直方图,功率谱,条形图,错误图,散点图等。
- 用于创建出版质量图表的绘图工具库
- 目的是为Python构建一个Matlab式的绘图接口
- import matplotlib.pyplot as plt
- pyplot模块包含了常用的matplotlib API函数
figure
- Matplotlib的图像均位于figure对象中
- 创建figure:fig = plt.figure()
示例代码:
# 引入matplotlib包 import matplotlib.pyplot as plt import numpy as np %matplotlib inline #在jupyter notebook 里需要使用这一句命令 # 创建figure对象 fig = plt.figure()
运行结果:会弹出一个figure窗口,如下图所示
subplot
fig.add_subplot(a, b, c)
- a,b 表示将fig分割成 a*b 的区域
- c 表示当前选中要操作的区域,
- 注意:从1开始编号(不是从0开始)
- plot 绘图的区域是最后一次指定subplot的位置 (jupyter notebook里不能正确显示)
示例代码:
# 指定切分区域的位置 ax1 = fig.add_subplot(2,2,1) ax2 = fig.add_subplot(2,2,2) ax3 = fig.add_subplot(2,2,3) ax4 = fig.add_subplot(2,2,4) # 在subplot上作图 random_arr = np.random.randn(100) #print random_arr # 默认是在最后一次使用subplot的位置上作图,但是在jupyter notebook 里可能显示有误 plt.plot(random_arr) # 可以指定在某个或多个subplot位置上作图 # ax1 = fig.plot(random_arr) # ax2 = fig.plot(random_arr) # ax3 = fig.plot(random_arr) # 显示绘图结果 plt.show()
运行结果:仅右下角有图
直方图:hist
示例代码:
import matplotlib.pyplot as plt import numpy as np plt.hist(np.random.randn(100), bins=10, color='b', alpha=0.3) plt.show()
散点图:scatter
示例代码:
import matplotlib.pyplot as plt import numpy as np # 绘制散点图 x = np.arange(50) y = x + 5 * np.random.rand(50) plt.scatter(x, y) plt.show()
柱状图:bar
示例代码:
import matplotlib.pyplot as plt import numpy as np # 柱状图 x = np.arange(5) y1, y2 = np.random.randint(1, 25, size=(2, 5)) width = 0.25 ax = plt.subplot(1,1,1) ax.bar(x, y1, width, color='r') ax.bar(x+width, y2, width, color='g') ax.set_xticks(x+width) ax.set_xticklabels(['a', 'b', 'c', 'd', 'e']) plt.show()
矩阵绘图:plt.imshow()
- 混淆矩阵,三个维度的关系
示例代码:
import matplotlib.pyplot as plt import numpy as np # 矩阵绘图 m = np.random.rand(10,10) print(m) plt.imshow(m, interpolation='nearest', cmap=plt.cm.ocean) plt.colorbar() plt.show()
plt.subplots()
- 同时返回新创建的figure和subplot对象数组
- 生成2行2列subplot:fig, subplot_arr = plt.subplots(2,2)
- 在jupyter里可以正常显示,推荐使用这种方式创建多个图表
示例代码:
import matplotlib.pyplot as plt import numpy as np fig, subplot_arr = plt.subplots(2,2) # bins 为显示个数,一般小于等于数值个数 subplot_arr[1,0].hist(np.random.randn(100), bins=10, color='b', alpha=0.3) plt.show()
运行结果:左下角绘图
颜色、标记、线型
- ax.plot(x, y, ‘r--’)
等价于ax.plot(x, y, linestyle=‘--’, color=‘r’)
示例代码:
import matplotlib.pyplot as plt import numpy as np fig, axes = plt.subplots(2) axes[0].plot(np.random.randint(0, 100, 50), 'ro--') # 等价 axes[1].plot(np.random.randint(0, 100, 50), color='r', linestyle='dashed', marker='o')
- 常用的颜色、标记、线型
颜色
- b: blue
-
g: grean
-
r: red
-
c: cyan
-
m: magenta
-
y: yellow
-
k: black
-
w: white
标记
- .: point
-
,: pixel
-
o: circle
-
v: triangle_down
-
^: triangle_up
-
<: tiiangle_left
线型
- '-' or 'solid': solid lint
-
'--' or 'dashed': dashed line
-
'-.' or 'dashdot': dash-dotted line
-
':' or 'dotted': dotted line
-
'None': draw nothing
-
' ': draw nothing
-
'': draw nothing
刻度、标签、图例
-
设置刻度范围
plt.xlim(), plt.ylim()
ax.set_xlim(), ax.set_ylim()
-
设置显示的刻度
plt.xticks(), plt.yticks()
ax.set_xticks(), ax.set_yticks()
-
设置刻度标签
ax.set_xticklabels(), ax.set_yticklabels()
-
设置坐标轴标签
ax.set_xlabel(), ax.set_ylabel()
-
设置标题
ax.set_title()
- 图例
ax.plot(label=‘legend’)
ax.legend(), plt.legend()
loc=‘best’:自动选择放置图例最佳位置
示例代码:
import matplotlib.pyplot as plt import numpy as np fig, ax = plt.subplots(1) ax.plot(np.random.randn(1000).cumsum(), label='line0') # 设置刻度 #plt.xlim([0,500]) ax.set_xlim([0, 800]) # 设置显示的刻度 #plt.xticks([0,500]) ax.set_xticks(range(0,500,100)) # 设置刻度标签 ax.set_yticklabels(['Jan', 'Feb', 'Mar']) # 设置坐标轴标签 ax.set_xlabel('Number') ax.set_ylabel('Month') # 设置标题 ax.set_title('Example') # 图例 ax.plot(np.random.randn(1000).cumsum(), label='line1') ax.plot(np.random.randn(1000).cumsum(), label='line2') ax.legend() ax.legend(loc='best') #plt.legend()
相关文章推荐
- matplotlib绘图,图标注释(2)
- Centos6没有GUI的情况下使用matplotlib绘图
- 基于Python实现matplotlib中动态更新图片(交互式绘图)
- python之matplotlib绘图基本操作
- [python]在ubuntu下使用matplotlib绘图---问题
- matplotlib-绘制精美的图标 第一节 快速绘图(II)
- matplotlib绘图教程
- matplotlib绘图基础--1
- Python matplotlib绘图学习笔记
- python matplotlib绘图时图例显示问题
- Python绘图和数值工具:matplotlib 和 numpy下载与使用
- py科学绘图库matplotlib详细教程
- python matplot 绘图
- Python--matplotlib绘图可视化知识点整理
- Python使用matplotlib绘图示例
- 从零开始机器学习实战2-Matplotlib绘图
- Matplotlib 绘图教程(seaborn使用)
- Python--matplotlib绘图可视化知识点整理
- python matplotlib绘图使用中文字体
- 使用 Python 的 matplotlib 绘图库进行绘图