matplotlib绘制图形,matplotlib函数绘图

  matplotlib绘制图形,matplotlib函数绘图

  本文主要介绍Python高级绘图库Matplotlib,Matplotlib:是一个Python 2D绘图库。通过Matplotlib,开发者只需要几行代码就可以生成折线图、直方图、条形图、饼状图、散点图等等。

  00-1010 1、基本用法1.1、线条样式颜色1.2、轴标题1.3、标记设置1.4、注释文本1.5、设置图形样式2、条形图2.1、水平条形图示例2.2、分组条形图2.3、堆积条形图3、直方图3.1、直方图3.2、频率直方图3.3、直方图4、散点图5等等。

  #字体设置

  PLT . RC params[ font . sans-serif ]=[ sim hei ]

  PLT . RC params[ axes . unicode _ MINUS ]=False

  

目录

 

  Matplotlib:是一个Python 2D绘图库。通过matplotlib,开发者可以生成折线图、直方图、条形图、饼图、散点图等。只有几行代码。Plot是一个绘图函数,其参数为:Plot ([x],y,[fmt],data=none,* * kwargs)

  

1、基本使用

 

  (1)虚线形式

  (2)线条颜色

  将matplotlib.pyplot作为plt导入

  将numpy作为np导入

  #原始线形图

  plt.plot(range(10),[np.random.randint(0,10) for x in range(10)]

  #点线图

  plt.plot(range(10),[np.random.randint(0,10) for x in range(10)], * )

  #线条颜色

  Plt.plot ([1,2,3,4,5],[1,2,3,4,5], r) #将颜色线设置为红色

  中文字体设置:

  

1.1、线条样式 颜色

 

  1.设置图表标题:plt.title2,轴标题: PLT . xlabel PLT . y label-标题名称3,轴刻度: PLT . x ticks PLT . y ticks-刻度长度,以及刻度标题运行结果:.

  x=范围(10)

  y=[np.random.randint(0,10) for x in range(10)]

  plt.plot(x,y,线宽=10,颜色=红色)

  #设置图表标题

  Plt.title(sin函数)

  #设置轴标题

  Plt.xlabel(x轴)

  Plt.ylabel(y轴)

  #设置轴刻度

  Plt。x张票(范围(10),[第%d天 %x,在范围(1,10)中x的时间)]

  Plt.y票证(范围(10),[第%d天 %x,在范围(1,10)内x的时间)]

  #加载字体

  PLT . RC params[ font . sans-serif ]=[ sim hei ]

  英语字母表中第十六个字母

  lt.rcParams["axes.unicode_minus"] = False

  运行结果:

  

 

  

 

  

1.3、marker设置

 

  marker:关键点重点标记

  范例:

  

x = range(10)

 

  运行结果:

  

 

  

 

  

1.4、注释文本

 

  annotate:注释文本

  范例:

  

x = range(10)

 

  运行结果:

  

 

  

 

  

1.5、设置图形样式

 

  

plt.figure:调整图片的大小和像素

 

  范例:

  

x = range(10)

 

  运行结果:

  

 

  

 

  

2、条形图

 

  应用场景:

  

  • 1. 数量统计。

  • 2. 频率统计。

 

  相关参数:

  barh:条形图

  

  • 1. `x`:一个数组或者列表,代表需要绘制的条形图的x轴的坐标点。

  • 2. `height`:一个数组或者列表,代表需要绘制的条形图y轴的坐标点。

  • 3. `width`:每一个条形图的宽度,默认是0.8的宽度。

  • 4. `bottom`:`y`轴的基线,默认是0,也就是距离底部为0.

  • 5. `align`:对齐方式,默认是`center`,也就是跟指定的`x`坐标居中对齐,还有为`edge`,靠边对齐,具体靠右边还是靠左边,看`width`的正负。

  • 6. `color`:条形图的颜色。

 

  

 

  

2.1、横向条形图 范例

 

  

movies = {

 

  运行结果:

  

 

  

 

  

2.2、分组条形图

 

  范例:

  

movies = {

 

  运行结果:

  

 

  

 

  

2.3、堆叠条形图

 

  范例:

  

menMeans = (20, 35, 30, 35, 27)

 

  运行结果:

  

 

  

 

  

3、直方图

 

  plt.hist:直方图

  

  • 1. x:数组或者可以循环的序列;

  • 2. bins:数字或者序列(数组/列表等);

  • 3. range:元组或者None,如果为元组,那么指定`x`划分区间的最大值和最小值;

  • 4. density:默认是`False`,如果等于`True`,那么将会使用频率分布直方图;

  • 5. cumulative:如果这个和`density`都等于`True`,那么返回值的第一个参数会不断的累加,最终等于`1`。

 

  应用场景:

  

  • 1. 显示各组数据数量分布的情况。

  • 2. 用于观察异常或孤立数据。

  • 3. 抽取的样本数量过小,将会产生较大误差,可信度低,也就失去了统计的意义。因此,样本数不应少于50个。

 

  

 

  

3.1、直方图

 

  范例:

  

durations = [131, 98, 125, 131, 124, 139, 131, 117, 128, 108, 135, 138, 131, 102, 107, 114, 119, 128, 121, 142, 127, 130, 124, 101, 110, 116, 117, 110, 128, 128, 115, 99, 136, 126, 134, 95, 138, 117, 111,78, 132, 124, 113, 150, 110, 117, 86, 95, 144, 105, 126, 130,126, 130, 126, 116, 123, 106, 112, 138, 123, 86, 101, 99, 136,123, 117, 119, 105, 137, 123, 128, 125, 104, 109, 134, 125, 127,105, 120, 107, 129, 116, 108, 132, 103, 136, 118, 102, 120, 114,105, 115, 132, 145, 119, 121, 112, 139, 125, 138, 109, 132, 134,156, 106, 117, 127, 144, 139, 139, 119, 140, 83, 110, 102,123,107, 143, 115, 136, 118, 139, 123, 112, 118, 125, 109, 119, 133,112, 114, 122, 109, 106, 123, 116, 131, 127, 115, 118, 112, 135,115, 146, 137, 116, 103, 144, 83, 123, 111, 110, 111, 100, 154,136, 100, 118, 119, 133, 134, 106, 129, 126, 110, 111, 109, 141,120, 117, 106, 149, 122, 122, 110, 118, 127, 121, 114, 125, 126,114, 140, 103, 130, 141, 117, 106, 114, 121, 114, 133, 137, 92,121, 112, 146, 97, 137, 105, 98, 117, 112, 81, 97, 139, 113,134, 106, 144, 110, 137, 137, 111, 104, 117, 100, 111, 101, 110,105, 129, 137, 112, 120, 113, 133, 112, 83, 94, 146, 133, 101,131, 116, 111, 84, 137, 115, 122, 106, 144, 109, 123, 116, 111,111, 133, 150]

 

  运行结果:

  

 

  

 

  

3.2、频率直方图

 

  density:频率直方分布图

  范例:

  

nums,bins,patches = plt.hist(durations,bins=20,edgecolor=k,density=True,cumulative=True)

 

  运行结果:

  

 

  

 

  

3.3、直方图

 

  cumulative参数:nums的总和为1

  范例:

  

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

 

  运行结果:

  

 

  

 

  

4、散点图

 

  plt.scatter:散点图绘制:

  

  • 1. x,y:分别是x轴和y轴的数据集。两者的数据长度必须一致。

  • 2. s:点的尺寸。

  • 3. c:点的颜色。

  • 4. marker:标记点,默认是圆点,也可以换成其他的。

 

  范例:

  

plt.scatter(x =data_month_sum["sumprice"] #传入X变量数据

 

  运行结果:

  

 

  

 

  

5、饼图

 

  饼图:一个划分为几个扇形的圆形统计图表,用于描述量、频率或百分比之间的相对关系的。

  在matplotlib中,可以通过plt.pie来实现,其中的参数如下:

  x:饼图的比例序列。labels:饼图上每个分块的名称文字。explode:设置某几个分块是否要分离饼图。autopct:设置比例文字的展示方式。比如保留几个小数等。shadow:是否显示阴影。textprops:文本的属性(颜色,大小等)。 范例

  

plt.figure(figsize=(8,8),dpi=100,facecolor=white)

 

  运行结果:

  

 

  

 

  

6、箱线图

 

  箱图的绘制方法是:

  

  • :1、先找出一组数据的上限值、下限值、中位数(Q2)和下四分位数(Q1)以及上四分位数(Q3)

  • :2、然后连接两个四分位数画出箱子

  • :3、再将最大值和最小值与箱子相连接,中位数在箱子中间。

 

  中位数:把数据按照从小到大的顺序排序,然后最中间的那个值为中位数,如果数据的个数为偶数,那么就是最中间的两个数的平均数为中位数。
上下四分位数:同样把数据排好序后,把数据等分为4份。出现在`25%`位置的叫做下四分位数,出现在`75%`位置上的数叫做上四分位数。但是四分位数位置的确定方法不是固定的,有几种算法,每种方法得到的结果会有一定差异,但差异不会很大。

  上下限的计算规则是:

  

  • IQR=Q3-Q1

  • 上限=Q3+1.5IQR

  • 下限=Q1-1.5IQR

 

  在matplotlib中有plt.boxplot来绘制箱线图,这个方法的相关参数如下:

  x:需要绘制的箱线图的数据。notch:是否展示置信区间,默认是False。如果设置为True,那么就会在盒子上展示一个缺口。sym:代表异常点的符号表示,默认是小圆点。vert:是否是垂直的,默认是True,如果设置为False那么将水平方向展示。whis:上下限的系数,默认是1.5,也就是上限是Q3+1.5IQR,可以改成其他的。也可以为一个序列,如果是序列,那么序列中的两个值分别代表的就是下限和上限的值,而不是再需要通过IQR来计算。positions:设置每个盒子的位置。widths:设置每个盒子的宽度。labels:每个盒子的labelmeanlineshowmeans:如果这两个都为True,那么将会绘制平均值的的线条。

  范例:

  

#箱线图 - 主要观察数据是否有异常(离群点)

 

  运行结果:

  

 

  

 

  

7、雷达图

 

  雷达图:又被叫做蜘蛛网图,适用于显示三个或更多的维度的变量的强弱情况

  plt.polar来绘制雷达图,x轴的坐标点应该为弧度(2*PI=360°)

  范例:

  

import numpy as np

 

  运行结果:

  

 

  注意事项:

  

  • 因为polar并不会完成线条的闭合绘制,所以我们在绘制的时候需要在theta中和values中在最后多重复添加第0个位置的值,然后在绘制的时候就可以和第1个点进行闭合了。

  • polar只是绘制线条,所以如果想要把里面进行颜色填充,那么需要调用fill函数来实现。

  • polar默认的圆圈的坐标是角度,如果我们想要改成文字显示,那么可以通过xticks来设置。

 

  到此这篇关于Python进阶Matplotlib库图绘制的文章就介绍到这了,更多相关Python Matplotlib库内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: