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
③直方图:
形式类似于柱状图
* 通过将数据组合在一起来显示分布,比如:显示各年龄段的数据个数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 脚本