第十章 第三方库-Matplotlib-1

第十章 第三方库-Matplotlib-1

雾里看花 2024-10-17 关于我们 12 次浏览 0个评论

本章我们介绍几种第三方库,理解Python的强大功能。主要有NumPy、SciPy和 Matplotlib(绘图库),这些库提供了一个强大的科学计算环境,有助于我们通过 Python 学习数据科学或者机器学习。

Matplotlib库由各种可视化类构成,内部结构复杂,受Matlab启发。matplotlib.pyplot是绘制各类可视化图形的命令子库,相当于快捷方式。import matplotlib.pyplot as plt

Matplotlib是第一个Python可视化库,绘制数据图,有许多别的程序库都是建立在其基础上或者直接调用该库,可以很方便地得到数据的大致信息,功能非常强大,但也非常复杂。

我们从简单的开始。

 

1.plot函数实例

plt.plot(x, y,format_string,**kwargs)

format_string:控制曲线的格式字符串(可选),由颜色字符、风格字符和标记字符组成

x:x轴数据,列表或数组,可选

y:y轴数据,列表或数组

format_string:控制曲线的格式字符串

**kwargs: 第二组或更多的(x,y,format_string)

 

format_string:控制曲线的格式字符串,可选。由颜色字符、风格字符和标记字符组成

风格字符        说明

'-'                    实线

'--'                破折线

'-.'                   点划线

':'                   虚线

' '                   无线条

import numpy as np

import matplotlib.pyplot as plt

a=np.arange(10)

print(a)

plt.plot(a,a*2,a,a*3,a,a*4,a,a*5)   

plt.show()

运行结果如下,输出图形为下图左侧。:

[0 1 2 3 4 5 6 7 8 9]

  位置替换为下述代码,输出图形为上图中间。

plt.plot(a,a*2,'r:D',a,a*3,'b-o',a,a*4,'m-.,',a,a*5,'r:x')

**kwargs: 第二组或更多(x,y,format_string)

color: 控制颜色 如color='green'

linestyle:线条控制 如linestyle='dashed'

marker:标记风格,marker='o'

markerfacecolor:标记颜色,markerfacecolor='blue'

markersize:标记尺寸,markersize=20

  位置替换为下述代码,输出图形为上图右侧。

plt.plot(a,a*2,'r:D',a,a*3,'b-o',a,a*4,'m-.,',a,a*5,'r:x',markerfacecolor='yellow',markersize=10)

 

再看一个正弦曲线的例子:

import numpy as np

import matplotlib.pyplot as plt

x = np.arange(0, 2 * np.pi, 0.01)

y = np.sin(x)

plt.plot(x,y,'r:D')

plt.show()

给图加点名称,坐标轴提示信息如下绿色部分代码,运行结果如上图中间:

import numpy as np

import matplotlib.pyplot as plt

x = np.arange(0, 2 * np.pi, 0.01)

y = np.sin(x)

plt.plot(x,y,'r:D')

plt.show()

 

中文没能显示出来,Why?...... 接着往下看吧!

2.pyplot的中文显示

pyplot并不默认支持中文显示,需要rcParams修改字体实现。两种方式:全局设置中文字体和局部设置中文字体。上图加上下面绿色部分代码,绘制图形为上图右侧部分,汉字显示正常。

 

import numpy as np

import matplotlib.pyplot as plt

x = np.arange(0, 2 * np.pi, 0.01)

y = np.sin(x)

plt.plot(x,y,'r:D')

plt.xlabel("x轴标签")

plt.ylabel("y轴标签")

plt.title("正弦曲线sin(x)")

plt.show()

 

但是细心的你会发现怎么纵轴上的负号没有显示出来呢,百度一下,增加下面第一行绿色部分代码即可,第二行绿色部分代码是将图形保存至文件,下图左侧就是从文件sinx.png中复制过来的图像。

 

import numpy as np

import matplotlib.pyplot as plt

plt.rcParams['font.family']='SimHei'

plt.rcParams['font.size']=16

x = np.arange(0, 2 * np.pi, 0.01)

y = np.sin(x)

plt.plot(x,y,'r:D')

plt.xlabel("x轴标签")

plt.ylabel("y轴标签")

plt.title("正弦曲线sin(x)")

plt.show()

下面我们来解释一下rcParams。

rcParams的属性

属性                        说明

'font.family'            用于显示字体的名字

'font.style'                字体风格,正常'normal'或斜体'italic'

'font.size'               字体大小,整数字号或者'large','x-small'

中文字体的种类

rcParams['font.family']

中文字体            说明

'SimHei'            中文黑体

'Kaiti'                   中文楷体

'LiSu'                 中文隶书

'FangSong'                 中文仿宋

'YouYuan'                 中文幼圆

STSong                 华文宋体

上面所有中文都按照统一的字体显示,有时候这不是我们想要的结果。所以提供第二种方法为局部设置中文字体,在有中文输出的地方,增加一个属性:fontproperties,上图右侧为此种方式结果,代码如下,绿色部分为修改行。

import numpy as np

import matplotlib.pyplot as plt

plt.rcParams['axes.unicode_minus']=False

x = np.arange(0, 2 * np.pi, 0.01)

y = np.sin(x)

plt.plot(x,y,'r:D')

plt.xlabel("x轴标签", fontproperties='SimHei',fontsize=16)

plt.ylabel("y轴标签", fontproperties='SimHei',fontsize=16)

plt.title("正弦曲线sin(x)", fontproperties='Kaiti',fontsize=20)

plt.savefig('sinx',dpi=600)

plt.show()

 

下面例子参考网络资料,大家可以自己学习,修改代码,画出自己的图形。


转载请注明来自义乌市斌鸿机械有限公司,本文标题:《第十章 第三方库-Matplotlib-1》

百度分享代码,如果开启HTTPS请参考李洋个人博客
每一天,每一秒,你所做的决定都会改变你的人生!

发表评论

快捷回复:

评论列表 (暂无评论,12人围观)参与讨论

还没有评论,来说两句吧...

Top