python可视化化库有哪些?

Python
被誉为”万能胶“的Python语言,有非常强大的资源库,下面我们来看看Python在可视化方面有哪些强大的资源库。

1、Python Matplotlib

Matplotlib是一个Python 2维绘图库,已经成为Python中公认的数据可视化工具,通过Matplotlib你可以很轻松地画一些或简单或复杂地图形,几行代码即可生成线图、直方图、功率谱、条形图、错误图、散点图等等。下面看一个简单实例。
# Filename : example.py
# Copyright : 2020 By Lidihuo
# Author by : www.lidihuo.com
# Date : 2020-09-07
import matplotlib.pyplot as plt
import numpy as np
import math #needed for definition of pi
%matplotlib inline
# 显示中文设置...
plt.rcParams['font.sans-serif'] = ['SimHei'] # 步骤一(替换sans-serif字体)
plt.rcParams['axes.unicode_minus'] = False # 步骤二(解决坐标轴负数的负号显示问题)
x = np.arange(0, math.pi*2, 0.05)
y = np.sin(x)
plt.plot(x,y)
plt.xlabel("角度")
plt.ylabel("正弦")
plt.title('正弦波')
plt.show()

2、Python Seaborn

Seaborn是基于Mtplotlib产生的一个模块,专攻于统计可视化,可以和pandas进行无缝链接,使初学者更容易上手。相对于Matplotlib,Seaborn语法更简洁,两者关系类似于NumPy、和Pandas之间的关系。Seaborn简单操作实例如下:
# Filename : example.py
# Copyright : 2020 By Lidihuo
# Author by : www.lidihuo.com
# Date : 2020-09-07
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
def sinplot(flip=1): #自定义一个函数
x = np.linspace(0,14,100) #0-14取100个点
for i in range(1,7): #画了7条线
plt.plot(x,np.sin(x + i *0.5) * (7 - i) * flip) #sin函数
plt.show()
sinplot()

3、Python HoloViews

# Filename : example.py
# Copyright : 2020 By Lidihuo
# Author by : www.lidihuo.com
# Date : 2020-09-07
import numpy as np
import holoviews as hv
#调用bokeh
hv.extension('bokeh')
#数据输入
frequencies = [0.5, 0.75, 1.0, 1.25]
#定义曲线
def sine_curve(phase, freq):
    xvals = [0.1* i for i in range(100)]
    return hv.Curve((xvals, [np.sin(phase+freq*x) for x in xvals]))
# 调用函数,输出图像
dmap = hv.DynamicMap(sine_curve, kdims=['phase', 'frequency'])
dmap.redim.range(phase=(0.5,1)).redim.range(frequency=(0.5,1.25))

4、Python Altair

Altair是Python的一个公认的统计可视化库。它的API简单、友好、一致,并建立在强大的vega - lite(交互式图形语法)之上。Altair API不包含实际的可视化呈现代码,而是按照vega - lite规范发出JSON数据结构。由此产生的数据可以在用户界面中呈现,这种优雅的简单性产生了漂亮且有效的可视化效果,且只需很少的代码。 数据源是一个DataFrame,它由不同数据类型的列组成。DataFrame是一种整洁的格式,其中的行与样本相对应,而列与观察到的变量相对应。数据通过数据转换映射到使用组的视觉属性(位置、颜色、大小、形状、面板等)。
# Filename : example.py
# Copyright : 2020 By Lidihuo
# Author by : www.lidihuo.com
# Date : 2020-09-07
import altair as alt
# 加载数据集
cars = alt.load_dataset('cars')
#绘图
alt.Chart(cars).mark_point().encode(
    x='Horsepower',
    y='Miles_per_Gallon',
    color='Origin',
)

5、Python PyQtGraph

PyQtGraph是在PyQt4 / PySide和numpy上构建的纯 python的GUI图形库。它主要用于数学,科学,工程领域。尽管PyQtGraph完全是在python中编写的,但它本身就是一个非常有能力的图形系统,可以进行大量的数据处理,数字运算;使用了Qt的GraphicsView框架优化和简化了工作流程,实现以最少的工作量完成数据可视化,且速度也非常快。
# Filename : example.py
# Copyright : 2020 By Lidihuo
# Author by : www.lidihuo.com
# Date : 2020-09-07
import pyqtgraph as pg
from pyqtgraph.Qt import QtGui, QtCore
import numpy as np
#创建一个绘图区
win = pg.plot()
win.setWindowTitle('pyqtgraph example: FillBetweenItem')
win.setXRange(-10, 10)
win.setYRange(-10, 10)
#曲线
N = 200
x = np.linspace(-10, 10, N)
gauss = np.exp(-x**2 / 20.)
mn = mx = np.zeros(len(x))
curves = [win.plot(x=x, y=np.zeros(len(x)), pen='k') for i in range(4)]
brushes = [0.5, (100, 100, 255), 0.5]
fills = [pg.FillBetweenItem(curves[i], curves[i+1], brushes[i]) for i in range(3)]
for f in fills:
    win.addItem(f)
def update():
    global mx, mn, curves, gauss, x
    a = 5 / abs(np.random.normal(loc=1, scale=0.2))
    y1 = -np.abs(a*gauss + np.random.normal(size=len(x)))
    y2 = np.abs(a*gauss + np.random.normal(size=len(x)))
 
    s = 0.01
    mn = np.where(y1     mx = np.where(y2>mx, y2, mx) * (1-s) + y2 * s
    curves[0].setData(x, mn)
    curves[1].setData(x, y1)
    curves[2].setData(x, y2)
    curves[3].setData(x, mx)
 
#时间轴
timer = QtCore.QTimer()
timer.timeout.connect(update)
timer.start(30)
#启动Qt
if __name__ == '__main__':
    import sys
    if (sys.flags.interactive != 1) or not hasattr(QtCore, 'PYQT_VERSION'):
        QtGui.QApplication.instance().exec_()
昵称: 邮箱:
Python isinstance()函数 Pythonisinstance()函数搞懂Pythonisinstance()函数的用法Python内置函数描述isinstance()函数来判断一个对象是否是一个已知...
推荐阅读
拓展学习
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4