Matplotlib

Posted zhoulixiansen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Matplotlib相关的知识,希望对你有一定的参考价值。

Matplotlib的基本元素:

1,变量

2,函数

3,画布(figure)

4,坐标轴(axes)

绘图过程:变量和函数通过改变figure和axes中的元素(如:title,label)一起描述figure和axes

技术图片

Matplotlib的图像位于figure对象中

通过plt.figure()创建

  如果没有指定创建,matplotlib会自动生成默认的画布

  参数figsize用来控制画布的大小,单位为英寸(inch), 1 inch = 2.54 cm

用plt.show()显示绘图结果

注意的是,在jupyter notebook中使用matplotlib时,代码块需要放在一个cell中

import matplotlib.pyplot as plt
import numpy as np

plt.figure() # 创建画布
Out[19]: <Figure size 640x480 with 0 Axes>
data = [2,4,6,8,10]  #构造数据

# 可视化数据
plt.plot(data)  #plot是绘制折线
Out[21]: [<matplotlib.lines.Line2D at 0xc35eb10>]
plt.show()

技术图片

plt.figure(figsize=(15, 6))  # 控制画布大小
plt.plot(np.random.randn(100))
plt.show()

技术图片

①散点图:

plt.scatter(x, y, s,c,marker)  # s,c,marker有默认值

* x 横轴的数据

* y 纵轴的数据

* s点的大小,标量或数组 →标量:同时所有点的大小(颜色)

* c点的颜色,标量或数组→数组:为每一个点设置不同的大小(颜色)

* marker点的样式

②柱状图:

plt.bar(x,xheight,color)

* x柱子的横坐标

*height 柱子的高度(数据)

*color柱子的颜色

注意:绘制多组柱状图时,需要设置不同的横坐标,防止重叠

x1 = [1,3,5,7,9]
data1=[5,2,7,8,2]
plt.bar(x1,data,color=r)
x2 = np.array(x1)+1  # 设置不同的横坐标防止覆盖
plt.bar(x2, np.array(data1)+2, color=g)
plt.show()

技术图片

要求在同一个画布上绘制A同学和B同学的成绩,设置画布的大小为10*5,柱子的宽度为0.5,绘制图例,A同学的柱子颜色用红色表示,B同学柱子的颜色用蓝色表示,x轴标签是year,y轴标签为score。



plt.figure(figsize=(10,5))



year=["2016","2017","2018","2019"]



x_A=[1,3,5,7]



score_A = [40,50,59,60]



w =0.5



plt.bar(x_A,score_A,(1)=w,label="A")



 



x_B=np.array(x_A)+w



score_B = [50,70,80,90]



plt.bar(x_B,(2),width=w,(3)="B")



plt.xlabel("year")



plt.(4)("score")



plt.legend()



plt.xticks(x_B-0.25,year)



plt.show()
技术图片
填空(1): 正确答案 width
填空(2): 正确答案 score_B
填空(3): 正确答案 label
填空(4): 正确答案 ylabel
View Code

③直方图:

形式类似于柱状图

* 通过将数据组合在一起来显示分布,比如:显示各年龄段的数据个数plt.hist(x, bins, rwidth)

* x 数据rwidth柱子宽度比例,默认为1

* bins 分组的个数或分组边界,如4[20, 30, 40, 50, 60]

*除了最后一组,其余组的右边界是开放的[20, 30), [30, 40), [40, 50), [50, 60]

 技术图片

 

以上是关于Matplotlib的主要内容,如果未能解决你的问题,请参考以下文章

在 matplotlib 内联和 QT 后端之间切换 Python 脚本

Python matplotlib 基础练习:画出正弦曲线等

如何将csv数据加载到matplotlib?

为xp轴指定matplotlib.pyplot直方图的值

Matplotlib模块

数据可视化代码实例(Matplotlib+Pandas)