Python数据可视化三部曲之 Matplotlib 从上手到上头(下)

简介: Python数据可视化三部曲之 Matplotlib 从上手到上头

8. 设置样式(颜色,线条,标记)

8.1 线条颜色 color

修改图形的颜色通过设定plot()的color参数来实现,color参数也可以简写为c。


颜色的取值有多种方式指定,最常用的是直接设定颜色的名称或颜色名称的简写,也可以通过RGB数组(比如(1,1,0)等其他方式设定)。


常用的颜色简写有

颜色

简写

英文

蓝色

b

blue

红色

r

red

绿色

g

green

黄色

y

yellow

黑色

k

black

白色

w

white

洋红色(也称品红色)

m

magenta

蓝绿色(即青色)

c

cyan

此外,常用颜色还可以选择的有brown,purple,pink,orange,olive,gold,gray等。

8.2 线条样式 linestyle

plot()函数中的linestyle参数用于设定曲线的类型。为了书写方便,有时会用ls代替linestyle, 该参数的主要取值如表所示:


线条类型可能的取值有

类型

名称取值

符号取值

实线

‘solid’

‘-’

虚线(也称双画线)

‘dashed’

‘—’ (两个短杠)

线点

‘dashdot’

‘-.’

点线

‘dotted’

‘:’

不画线

‘None’

‘’

虚线(另一种)

 

‘:’

 

8.3 标记样式 maker

除了线条样式外,还可以设置数据点的形状。数据点形状通过plot()方法的maker参数来设定。maker参数取值有很多,如表所示:


点的形状marker的部分值表

形状含义

符号取值(marker)

点标记

.

像素标记

,

实心圆标记

o

向下三角形标记

v

向上三角形标记

^

向左三角形标记

<

向右三角形标记

>

实心正方形标记

s

实心五角星标记

‘p’

竖六边形标记

‘h’

横六边形标记

‘H’

下花三角标记

1

上花三角标记

2

左花三角标记

3

右花三角标记

4

加号标记

‘+’

叉号标记

‘x’

钻石标记(大菱形标记)

D

小钻石标记(小菱形标记)

d

星号标记

‘*’

竖线标记

‘|’

8.4 线条宽度 linewidth

线条的宽度通过参数linewidth来设定。参数linewidth也可以简写成lw。

8.5 标记的样式

参数mfc用于设置标记的颜色

参数ms用于设置标记的大小

参数mec用于设置标记的边框的颜色。


__

8.6 样式使用示例

绘制两条折线为例

一条为红色,线条样式为“点线”类型,标记为大菱形标记,线条宽度为2。

另一条为绿色,线条样式为虚线类型(’:’),标记为横六边形标记,线条宽度为4。

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.plot([5.12, 5.15, 5.13, 5.10, 5.2, 5.25, 5.19, 5.24, 5.31], label='股票A收盘价', c='r', ls='-.', marker='D', lw=2)
plt.plot([5.09, 5.13, 5.16, 5.12, 5.09, 5.25, 5.16, 5.20, 5.25], label='股票B收盘价', c='g', ls=':', marker='H', lw=4)
plt.xticks(range(9), \
        ['2021-02-01', '2021-02-02', '2021-02-03', '2021-02-04', \
        '2021-02-05', '2021-02-06', '2021-02-07', '2021-02-08', \
         '2021-02-09'], rotation=45)
plt.title('某股票开盘价&收盘价时序图')
plt.xlabel('日期')
plt.ylabel('价格')
plt.grid(True)
plt.legend()
plt.show()

图像展示如下:

9.png

9.面向对象绘图

9.1 面向对象绘图 - 创建画布对象

设置画布,Matplotlib绘图的一大特色,即面向对象绘图


使用Matplotlib面向对象绘图,绘图前我们要先创建一个Figure对象,即所谓的“画布”,Figure对象是一个空白区域。Figure对象可以通过pyplot包中的figure函数进行创建。


fig = plt.figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True)


其中

num  指图像的编号或名称,数字为编号,字符串为名称。通过此参数来指定、区分不同的Figure对象。

figsize  指画布的宽和高,单位为英寸。(x, y)

dpi  指画布的分辨率,即每英寸有多少个像素,默认为80。

facecolor  指背景颜色。

edgecolor  指边框颜色。

frameon  指是否显示边框,默认为True,表示绘制边框。否则不绘制边框。


import matplotlib.pyplot as plt
fig = plt.figure(1, facecolor='r', figsize=(5, 3))
plt.plot([1, 1, 0, 0, -1, 0, 1, 1, -1])
plt.show()

10.png

对于每个Figure对象,都可以包含一个或者多个个Axes对象,每个Axes对象即一个绘图区域,其拥有自己独立的坐标系统。


不设置画布时则自动创建一个只有一个Axes对象的画布,且位置居中。


创建好Figure和Axes后,绘图时直接对创建的Axes对象调用相关方法即可(如ax1.plot()),不必再使用类似plt.plot()这样的形式。此即面向对象绘图。

9.2 创建Axes对象

以创建一个包含两个Axes的Figure对象为例,创建的方法有两种,一种是调用Figure对象的add_axes()方法,另一则是调用matplotlib的subplot()方法。


add_axes()方法

使用add_axes()方法创建Axes时,以对Figure对象fig创建Axes对象ax1为例,其语法如下

ax1 = fig.add_axes([x1,y1,x2,y2])


需要传入一个有四个元素的列表,四个数字依次表示创建的Axes的左下角、右上角的相对坐标位置。(原点在Figure对象左下角,计算相对位置时,Figure的宽和高都视为1个单位长度,要传入的坐标值都是0到1的浮点数)

import matplotlib.pyplot as plt
fig = plt.figure()
# 创建两个Axes对象
ax1 = fig.add_axes([0.1, 0.1, 0.3, 0.3])
ax2 = fig.add_axes([0.5, 0.5, 0.4, 0.4])
plt.show()

11.png

plt.subplot()方法


使用plt.subplot()方法创建Axes时,其语法如下

subplot(numRows, numCols, plotNum)


其中

num_Rows  指图像排多少行

numCols  指图像排多少列

plotNum  指图像的位置左上角第一个图像的位置开始记为1,往右依次记为2,3…,每一行的图像接着排下去,最终右下角的图像编号等于num_Rows×plotNum。


代码示例如下:

import matplotlib.pyplot as plt
# 位置1
ax1 = plt.subplot(221)
ax1.set_title('ax1')
# 位置2
ax2 = plt.subplot(222)
ax2.set_title('ax2')
# 位置3
ax3 = plt.subplot(223)
ax3.set_title('ax3')
# 位置4
ax4 = plt.subplot(224)
ax4.set_title('ax4')
plt.show()

12.png

9.3 常用面向对象绘图方法

以Axes对象ax1为例,常用的面向对象绘图方法有:


#绘图

ax1.plot()


#设置网格

ax1.grid()


#设置标题

ax1.set_title(‘ax1_title’)


#设置标签

ax1.set_xlabel()

ax1.set_ylabel()


#设置坐标轴范围

ax1.set_xlim()

ax1.set_ylim()


#设置刻度标签

ax1.set_xticklabels()

ax1.set_yticklabels()


# 设置图例

ax1.legend()


# 显示图像

将数据显示为图像,即在2D常规栅格上。

ax1.imshow()


# 显示图像

将2D矩阵或数组的值绘制为颜色编码的图像。

ax1.matshow()


#添加一条水平线

ax1.axhline()


# 添加水平跨度

ax1.axhspan


# 添加一条垂直线

ax1.axvline


# 添加垂直跨度

ax1.axvspan


# 添加无限长的直线

ax1.axline


Axes对象也有bar(),barh(),pie(),scatter()等方法。


10.matplotlib进阶学习

更多相关操作,为了方便日常检索,小啾将其写在了其他博文中。且小啾将链接附在了文末,大家可以参考学习:

matplotlib进阶传送门:

(一)给图像添加 文本标签 与 注释

(一)python-matplotlib给图像添加文本标签与注释

(二)subplots_adjust()方法解决图表与画布的间距问题

(二)python-matplotlib绘图 -应用subplots_adjust()方法解决图表与画布的间距问题

(三)直方图的绘制

(三)直方图的绘制 基于python-matplotlib库

(四)单柱柱形图与多柱柱形图的绘制

(四)单柱柱形图与多柱柱形图的绘制 基于python-matplotlib库

(五)绘制饼形图专题(从一般饼状图到内嵌环形图)

(五)python-matplotlib库绘制饼形图专题(从一般饼状图到内嵌环形图)

(六)绘制面积图&热力图

(六)python-matplotlib 绘制面积图&热力图

(七)绘制箱线图 与 异常值的输出

(七)绘制箱线图 与 异常值的输出 - 基于Python matplotlib库

(八)双y轴图像实现

(八)python matplotlib 双y轴图像实现

(九)绘制 3D图像专题 (三维柱状图、曲面图、散点图、曲线图合集)

(九)python matplotlib绘制 3D图像专题 (三维柱状图、曲面图、散点图、曲线图合集)

(十)绘制渐变色扇形图 -基于 颜色地图plt.cm模块儿

(十)绘制渐变色扇形图 - 基于python - matplotlib 颜色地图plt.cm模块儿

(十一)实现 等高线图

(十一)实现 等高线图 - 基于python-matplotlib

目录
相关文章
|
3月前
|
数据可视化 数据挖掘 开发者
Pandas数据可视化:matplotlib集成(df)
Pandas 是 Python 中强大的数据分析库,Matplotlib 是常用的绘图工具。两者结合可方便地进行数据可视化,帮助理解数据特征和趋势。本文从基础介绍如何在 Pandas 中集成 Matplotlib 绘制图表,如折线图、柱状图等,并深入探讨常见问题及解决方案,包括图表显示不完整、乱码、比例不合适、多子图布局混乱、动态更新图表等问题,提供实用技巧和代码示例。掌握这些方法后,你将能更高效地处理数据可视化任务。
71 9
|
3月前
|
数据可视化 数据挖掘 DataX
Python 数据可视化的完整指南
Python 数据可视化在数据分析和科学研究中至关重要,它能帮助我们理解数据、发现规律并以直观方式呈现复杂信息。Python 提供了丰富的可视化库,如 Matplotlib、Seaborn、Plotly 和 Pandas 的绘图功能,使得图表生成简单高效。本文通过具体代码示例和案例,介绍了折线图、柱状图、饼图、散点图、箱形图、热力图和小提琴图等常用图表类型,并讲解了自定义样式和高级技巧,帮助读者更好地掌握 Python 数据可视化工具的应用。
188 3
|
3月前
|
数据可视化 Python
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
通过这些思维导图和分析说明表,您可以更直观地理解和选择适合的数据可视化图表类型,帮助更有效地展示和分析数据。
125 8
|
3月前
|
数据可视化 Python
使用Python进行数据可视化的初学者指南
在数据的海洋里,我们如何能够不迷失方向?通过数据可视化的力量,我们可以将复杂的数据集转化为易于理解的图形和图表。本文旨在为初学者提供一份简明的入门手册,介绍如何使用Python中的Matplotlib库来揭示数据背后的故事。我们将从基础的图表开始,逐步深入到更高级的可视化技术,确保每个步骤都清晰易懂,让初学者也能轻松上手。让我们开始绘制属于你自己的数据图谱吧!
|
4月前
|
机器学习/深度学习 人工智能 数据可视化
使用Python进行数据可视化:探索与实践
在数字时代的浪潮中,数据可视化成为了沟通复杂信息和洞察数据背后故事的重要工具。本文将引导读者通过Python这一强大的编程语言,利用其丰富的库函数,轻松入门并掌握数据可视化的基础技能。我们将从简单的图表创建开始,逐步深入到交互式图表的制作,最终实现复杂数据的动态呈现。无论你是数据分析新手,还是希望提升报告吸引力的专业人士,这篇文章都将是你的理想指南。
100 9
|
4月前
|
数据可视化 数据处理 Python
Python编程中的数据可视化技术
在Python编程中,数据可视化是一项强大的工具,它能够将复杂的数据集转化为易于理解的图形。本文将介绍如何使用matplotlib和pandas这两个流行的Python库来实现数据可视化,并展示一些实用的代码示例。通过这些示例,读者将学会如何创建各种图表,包括折线图、柱状图和散点图等,以便更好地理解和呈现数据。
|
4月前
|
移动开发 数据可视化 数据挖掘
利用Python实现数据可视化:以Matplotlib和Seaborn为例
【10月更文挑战第37天】本文旨在引导读者理解并掌握使用Python进行数据可视化的基本方法。通过深入浅出的介绍,我们将探索如何使用两个流行的库——Matplotlib和Seaborn,来创建引人入胜的图表。文章将通过具体示例展示如何从简单的图表开始,逐步过渡到更复杂的可视化技术,帮助初学者构建起强大的数据呈现能力。
|
6月前
|
Python
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
|
6月前
|
数据可视化 数据挖掘 Linux
震撼发布!Python数据分析师必学,Matplotlib与Seaborn数据可视化实战全攻略!
在数据科学领域,数据可视化是连接数据与洞察的桥梁,能让复杂的关系变得直观。本文通过实战案例,介绍Python数据分析师必备的Matplotlib与Seaborn两大可视化工具。首先,通过Matplotlib绘制基本折线图;接着,使用Seaborn绘制统计分布图;最后,结合两者在同一图表中展示数据分布与趋势,帮助你提升数据可视化技能,更好地讲述数据故事。
106 1
|
6月前
|
存储 数据可视化 数据挖掘
揭秘!Matplotlib与Seaborn联手,如何让Python数据分析结果一目了然,惊艳全场?
在数据驱动时代,高效直观地展示分析结果至关重要。Python中的Matplotlib与Seaborn是两大可视化工具,结合使用可生成美观且具洞察力的图表。本文通过分析某电商平台的商品销量数据集,展示了如何利用这两个库揭示商品类别与月份间的销售关系及价格对销量的影响。首先使用Matplotlib绘制月份销量分布直方图,再借助Seaborn的箱线图进一步探索不同类别和价格区间下的销量稳定性。
100 10

热门文章

最新文章

推荐镜像

更多