- Python可视化数据分析图表:
- 在数据分析与机器学习中,我们经常用到大量的可视化操作。一张精美的图表,不仅能够展示大量的信息,更能够直观地体现数据之间隐藏的关系。数据分析图表的类型包括条形图、柱状图、折线图、饼图、散点图、面积图、环形图、雷达图等。此外,通过图表的相互叠加还可以生成复合型图表。 不同类型的图表适用不同的场景,可以按使用目的选择合适的图表类型。
- matplotlib
- matplotlib是基于Python语言的开源项目,旨在为Python提供一个数据绘图包。我将在这篇文章中介绍matplotlib并介绍如何使用这些对象来实现绘图。matplotlib使用numpy进行数组运算,并调用一系列其他的Python库来实现硬件交互。
- numpy
- NumPy(Numerical Python)是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩阵(matrix)),支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库
- python可视化的基础代码
1.先下载matplotlib的库
pip install matplotlib https://pypi.tuna.tsinghua.edu.cn/simple some-package
2.再导入matplotlib和numpy包
import matplotlib.pyplot as plt
import numpy as np
python里figure的用法
在Python中,figure
函数是matplotlib.pyplot
模块中的一个重要函数,用于创建和管理图形窗口。它允许用户创建多个图形窗口(即figure对象),每个窗口中可以包含一个或多个子图(subplot)。figure
函数提供了丰富的参数,允许用户自定义图形的尺寸、分辨率、背景颜色、边框颜色等属性。
1.创建图形窗口
# 设置画布的宽度为8英寸,高度为6英寸,分辨率为80,及每英寸点数为80.设置图形的背景颜色为green
plt.figure(figsize = (8,6),dpi = 80, facecolor = 'green')
2.添加子图
#使用add_subplot方法可以在同一个图形窗口中添加多个子图。
fig.add_subplot(221)
fig.add_subplot(222)
#将在同一个2x2的网格中创建两个子图,编号分别为1和2。
3.设置图形属性
#设置子图的标题
ax.set_title('示例图形')
ax.set_xlabel('X轴')
ax.set_ylabel('Y轴')
#分别设置X轴和Y轴的标签。
4.保存图形
#使用savefig方法可以将图形保存到本地文件。
fig.savefig('example.png', dpi=300)
#将图形保存为PNG格式,分辨率为300dpi。
参数说明:
num
:图像编号或名称,数字为编号,字符串为名称。figsize
:指定figure的宽和高,单位为英寸。dpi
:参数指定绘图对象的分辨率,即每英寸多少个像素,缺省值为80。facecolor
:背景颜色。edgecolor
:边框颜色。frameon
:是否显示边框。
部分示例代码截图
三维绘图函数Axes3D
- mpl_toolkits.mplot3d是Matplotlib里面专门用来画三维图的工具包。
- Axes3D是mpl_toolkits.mplot3d中的一个绘图函数。
- 创建 Axes3D主要有两种方式,一种是利用关键字projection='3d’来实现,另一种则是通过从mpl_toolkits.mplot3d导入对象Axes3D来实现,目的都是生成具有三维格式的对象Axes3D。
下面是利用三维绘图函数Axes3D做的代码
import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure()
ax = Axes3D(fig)
delta = 0.125
# 生成代表X轴数据的列表
x = np.arange(-4.0, 4.0, delta)
# 生成代表Y轴数据的列表
y = np.arange(-3.0, 4.0, delta)
# 对x、y数据执行网格化
X, Y = np.meshgrid(x, y)
Z1 = np.exp(-X**2 - Y**2)
Z2 = np.exp(-(X - 1)**2 - (Y - 1)**2)
# 计算Z轴数据(高度数据)
Z = (Z1 - Z2) * 2
# 绘制3D图形
ax.plot_surface(X, Y, Z,
rstride=1, # rstride(row)指定行的跨度
cstride=1, # cstride(column)指定列的跨度
cmap=plt.get_cmap('rainbow')) # 设置颜色映射
# 设置Z轴范围
ax.set_zlim(-2, 2)
# 显示图形
plt.show()
Python里的matplotlib和Axes3D的结果总概述
一、Matplotlib概述
Matplotlib是一个广泛使用的Python数据可视化库,它基于MATLAB的功能和用户体验设计,因此具有类似于MATLAB的API和语法。Matplotlib的核心设计思想是“一切皆可绘制”,为用户提供了丰富的图表类型和自定义选项,使得数据分析师和科学家可以轻松地创建高质量的图表。
- 主要功能:
- 2D图表:包括直方图、条形图、折线图、散点图等。
- 3D图表:包括三维直方图、三维条形图、三维折线图等。
- 地理数据可视化:支持地图、地理数据的绘制和分析。
- 交互式可视化:支持在Jupyter Notebook等环境中创建交互式图表。
- 核心概念:
- Axes对象:图表的基本单元,用于定义图表的坐标系、刻度、标签等。
- Figure对象:Axes对象的容器,用于定义图表的大小、背景颜色、边框等。
- Artist对象:图表的基本元素,包括线条、点、文本等。
- Patch对象:用于绘制矩形、圆形等形状的基本元素。
- Text对象:用于绘制文本和标签。
- Subplot对象:用于创建多个子图,实现多个图表在一个Figure中的布局。
- 配置方法:
- 永久配置:通过修改配置文件(如matplotlibrc)来设置永久有效的默认值。
- 动态配置:在代码中通过rcParams字典访问并修改所有已配置的参数。
二、Axes3D概述
Axes3D是Matplotlib中的一个子模块,专门用于绘制三维图表。它提供了丰富的三维绘图函数和工具,使得用户能够轻松创建复杂的三维图形。
- 主要功能:
- 绘制三维曲面:通过surface、contour等函数可以绘制二维函数的3D曲面图。
- 定制坐标轴:支持向画布的任意位置添加自定义大小的坐标系统,同时显示坐标轴。
- 刻度定制:通过Locator和Formatter类可以指定刻度线的位置和刻度标签的格式。
- 隐藏和移动轴脊:可以隐藏或移动坐标轴的轴脊,以满足不同的可视化需求。
- 使用示例:
- 通过创建一个Axes3D对象,用户可以开始绘制三维图表。
- 使用plot_surface等函数可以绘制三维曲面图,并通过设置参数来定制图表的外观和样式。
- 使用set_zlim等方法可以设置坐标轴的范围,以满足不同的数据可视化需求。
总之,Matplotlib和Axes3D为Python用户提供了强大的数据可视化工具,使得用户能够轻松地创建高质量的二维和三维图表,以满足不同的数据分析需求。