python可视化编程--matplotlib

1、matplotlib与pyqtgraph

matplotlib是一种常用的用于数据可视化的绘图库,它提供了一套和matlab相似的命令API,开发者可以仅需几行代码,便可生成如直方图,功率谱,条形图,错误图,散点图等图形,适用于交互式绘图,而且也可以方便地将它作为绘图控件嵌入到GUI应用程序中,并能够生成出版质量级别的图形,为程序开发者提供了便利。应该说,matplotlib库在静态图形的表现方面非常强大,但其缺点也比较明显,如在动态图形的绘制上,其刷新速度不尽人意。 

另一种功能强大的2D/3D绘图库——pyqtgraph,它是一种建立在PyQt4/PySide和numpy库基础之上的纯Python图形GUI库,在数学、科学和工程领域都有着广泛的应用。尽管该库完全用python编写,但内部由于使用了高速计算的numpy信号处理库以及Qt的GraphicsView框架,因此,它在大数据量的数字处理和快速显示方面有着巨大的优势,它适合于需要快速绘图更新、视频或实时交互性的操作场合。另外,它不仅为各种数据提供了快速可交互式的图形显示,同时也提供了用于快速开发应用程序的各种小工具,如属性树、流程图等小部件。

2、环境配置

Python安装完Numpy,SciPy和MatplotLib后,可以成为非常犀利的科研利器。

下载:https://pypi.org/project/matplotlib/#files

https://pypi.org/project/numpy/#files

安装Numpy

因为MatplotLib的使用需要以Numpy的支持,所以最好先装NumPy再装MatplotLib。

多python版本时,注意安装到那个python下,我的python默认的是python3.7.如果安装在python2.7下就用:pythno2 -m pip install numpy;

下图显示了两种安装方法:使用pip安装,或者下载whl文件安装;

安装结果:

检测:python  -m  pip list   查看安装list,可以找到安装的numpy 及版本;

         或者在python 命令中,输入import  numpy 没有报错;

安装MatplotLib 

使用pip安装:python -m pip matplotlib

遇到的问题:

升级后再使用pip重新安装;

查看安装库列表,会看到上图安装成功的库;

python命令中,输入:import matplotlib 不会报错

3、简单实例

import matplotlib.pyplot as plit

sque = [1, 9, 9, 16, 25]
plit.plot(sque)
plit.show()

plit.plot(横坐标列表1,纵坐标列表1,横坐标列表2,纵坐标列表2....线宽)   几个纵坐标列表就可以画出几条线:

plit.plot([1, 25, 7], [5, 7, 4], [15, 18, 2],linewidth=1)   #两条线,第二条线没有横坐标,默认从x轴的起始点依次排列;

plit.plot([1, 2, 7], [5, 7, 4], [1, 4, 7], [5, 18, 2],color='lightblue', linewidth=5);结果如上图

例如;

plit.plot([1, 25, 7], [5, 7, 4], [15, 18, 2], linewidth=5)
plit.title('first', fontsize=24)//设置字体
plit.xlabel('xxx', fontsize=24)
plit.ylabel('yyy')
plit.tick_params(axis='both', labelsize=14)  //设置刻度
plit.show()

画正弦余弦:import matplotlib.pyplot as plit

import numpy as np

x = np.arange(-1 * np.pi, 1 * np.pi,0.01)
y = np.cos(x)
y1=np.sin(x)
plit.plot(x, y,x,y1)
plit.title("function y=cos(x)", fontsize=24)
plit.xlabel("xx")
plit.ylabel("yy")
plit.show()

ax=plit.gca()  #获取Axes对象
ax.spines['right'].set_color('none')    #隐藏右边界
ax.spines['top'].set_color('none')      #隐藏上边界
ax.xaxis.set_ticks_position('bottom')   #x轴坐标刻度设置在坐标轴下面
ax.spines['bottom'].set_position(('data',0))  #x轴坐标轴平移至经过零点(0,0)位置
ax.yaxis.set_ticks_position('left')           #y轴坐标刻度设置在坐标轴下面
ax.spines['left'].set_position(('data',0))    #y轴坐标轴平移至经过零点(0,0)位置
plit.show()

学习:https://blog.csdn.net/MESSI_JAMES/article/details/80819144

发布了44 篇原创文章 · 获赞 9 · 访问量 8628

猜你喜欢

转载自blog.csdn.net/manmanlu2006/article/details/92786340
今日推荐