Matplotlib数据可视化进阶(一)

本文涉及的产品
云原生数据库 PolarDB 分布式版,标准版 2核8GB
简介: 本文其实属于:Python的进阶之道【AIoT阶段一】的一部分内容,本篇把这部分内容单独截取出来,方便大家的观看,本文介绍Matplotlib数据可视化进阶,读本文之前,如果没有 Matplotlib基础建议先看博客:Matplotlib数据可视化入门,Matplotlib数据可视化高级。

前言

本文其实属于:Python的进阶之道【AIoT阶段一】的一部分内容,本篇把这部分内容单独截取出来,方便大家的观看,本文介绍Matplotlib数据可视化进阶读本文之前,如果没有 Matplotlib基础建议先看博客:Matplotlib数据可视化入门Matplotlib数据可视化高级


🌟 学习本文之前,需要先自修:NumPy从入门到进阶,pandas从入门到进阶本文中很多的操作在 NumPy从入门到进阶 ,pandas从入门到进阶二文中有详细的介绍,包含一些软件以及扩展库,图片的安装和下载流程,本文会直接进行使用。


下载Matplotlib 见博客:matplotlib的安装教程以及简单调用,这里不再赘述


1.常用视图

1.1 折线图

import numpy as np
import matplotlib.pyplot as plt
y = np.random.randint(0, 10, size = 15)
# 一图多线
plt.figure(figsize = (9, 6))
# 只给了y,不给x,则x有默认值:0、1、2、3、...
plt.plot(y, marker = '*', color = 'r')
plt.plot(y.cumsum(), marker = 'o')
# 多图布局
fig,axs = plt.subplots(2, 1)
# 设置宽高
fig.set_figwidth(9)
fig.set_figheight(6)
axs[0].plot(y, marker = '*', color = 'red')
axs[1].plot(y.cumsum(), marker = 'o')

18.png

1.2 柱状图

1.2.1 堆叠柱状图

import numpy as np
import matplotlib.pyplot as plt
labels = ['G1', 'G2', 'G3', 'G4', 'G5','G6'] # 级别
# 生成数据
men_means = np.random.randint(20, 35, size = 6)
women_means = np.random.randint(20, 35, size = 6)
men_std = np.random.randint(1, 7, size = 6)
women_std = np.random.randint(1, 7, size = 6)
width = 0.35            # 柱状图中柱的宽度
plt.bar(labels,         # 横坐标
        men_means,      # 柱高
        width,          # 线宽
        yerr = men_std, # 误差条(标准差)
        label = 'Men')  # 标签
plt.bar(labels, 
        women_means, 
        width, 
        yerr = women_std, 
        bottom = men_means, # 把女生画成男生的上面
        # 没有上一行代码柱状图会发生重叠覆盖,读者可以自行尝试
        label = 'Women')
plt.ylabel('Scores')
plt.title('Scores by group and gender')
plt.legend()

19.png

1.2.2 分组带标签柱状图

import matplotlib
import matplotlib.pyplot as plt
import numpy as np
# 创造数据
labels = ['G1', 'G2', 'G3', 'G4', 'G5','G6'] # 级别
men_means = np.random.randint(20, 35,size = 6)
women_means = np.random.randint(20, 35,size = 6)
x = np.arange(len(men_means))
plt.figure(figsize = (9, 6))
# 把男生的柱状图整体左移 width / 2
rects1 = plt.bar(x - width / 2, men_means, width)
# 把女生的柱状图整体右移 width / 2
rects2 = plt.bar(x + width / 2, women_means, width)
# 设置标签标题,图例
plt.ylabel('Scores')
plt.title('Scores by group and gender')
plt.xticks(x, labels)    
plt.legend(['Men','Women'])
# 放置文本 text
def set_label(rects):
    for rect in rects:
        height = rect.get_height() # 获取高度
        plt.text(x = rect.get_x() + rect.get_width() / 2, # 水平坐标
                 y = height + 0.5, # 竖直坐标
                 s = height, # 文本
                 ha = 'center') # 水平居中
set_label(rects1)
set_label(rects2)
# 设置紧凑布局
plt.tight_layout() 

20.png

1.3 极坐标图

1.3.1 线性极坐标

🚩对于极坐标,我们先来绘制一个普通的直角坐标系下的直线

import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 4 * np.pi, 200)
y = np.linspace(0, 2, 200)
plt.plot(x, y)

image.png

我们对上述代码加上一行代码后,就可以转为极坐标:

import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 4 * np.pi, 200)
y = np.linspace(0, 2, 200)
plt.subplot(111, projection = 'polar')
plt.plot(x, y)

image.png

接下来,为了让这个极坐标图更加的美观,我们对其属性进行一些设置:

import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 4 * np.pi, 200)
y = np.linspace(0, 2, 200)
ax = plt.subplot(111, projection = 'polar', facecolor = 'lightgreen')
plt.plot(x, y)
# 设置
ax.set_rmax(3) # 最大半径设置为3
ax.set_rticks([0.5, 1, 1.5, 2]) # 设置刻度
ax.grid(True)     # 设置网格线

1.3.2 条形极坐标

import numpy as np
import matplotlib.pyplot as plt
#  分成8份 (0~360)
N = 8 
# 横坐标
x = np.linspace(0.0, 2 * np.pi, N, endpoint = False)
# 纵坐标
y = np.random.randint(3, 15, size = N)
# 宽度(8个柱子沾满圆)
width = np.pi / 4   
# 8个柱子随机生成颜色
colors = np.random.rand(8,3) 
# polar表示极坐标
ax = plt.subplot(111, projection = 'polar') 
ax.bar(x, y, width = width, color = colors)

image.png


相关实践学习
快速体验PolarDB开源数据库
本实验环境已内置PostgreSQL数据库以及PolarDB开源数据库:PolarDB PostgreSQL版和PolarDB分布式版,支持一键拉起使用,方便各位开发者学习使用。
目录
相关文章
|
2月前
|
数据可视化 数据挖掘 Linux
震撼发布!Python数据分析师必学,Matplotlib与Seaborn数据可视化实战全攻略!
在数据科学领域,数据可视化是连接数据与洞察的桥梁,能让复杂的关系变得直观。本文通过实战案例,介绍Python数据分析师必备的Matplotlib与Seaborn两大可视化工具。首先,通过Matplotlib绘制基本折线图;接着,使用Seaborn绘制统计分布图;最后,结合两者在同一图表中展示数据分布与趋势,帮助你提升数据可视化技能,更好地讲述数据故事。
52 1
|
13天前
|
移动开发 数据可视化 数据挖掘
利用Python实现数据可视化:以Matplotlib和Seaborn为例
【10月更文挑战第37天】本文旨在引导读者理解并掌握使用Python进行数据可视化的基本方法。通过深入浅出的介绍,我们将探索如何使用两个流行的库——Matplotlib和Seaborn,来创建引人入胜的图表。文章将通过具体示例展示如何从简单的图表开始,逐步过渡到更复杂的可视化技术,帮助初学者构建起强大的数据呈现能力。
|
1月前
|
数据可视化 数据挖掘 API
Python中的数据可视化利器:Matplotlib与Seaborn对比解析
在Python数据科学领域,数据可视化是一个重要环节。它不仅帮助我们理解数据,更能够让我们洞察数据背后的故事。本文将深入探讨两种广泛使用的数据可视化库——Matplotlib与Seaborn,通过对比它们的特点、优劣势以及适用场景,为读者提供一个清晰的选择指南。无论是初学者还是有经验的开发者,都能从中找到有价值的信息,提升自己的数据可视化技能。
102 3
|
1月前
|
数据可视化 定位技术 Python
Python数据可视化--Matplotlib--入门
Python数据可视化--Matplotlib--入门
29 0
|
2月前
|
数据可视化 数据挖掘 开发者
数据可视化新纪元!Python + Matplotlib + Seaborn,让你的数据故事生动起来!
在这个数据可视化的新纪元,让我们充分发挥 Python 的优势,用精彩的图表讲述数据背后的故事,为决策提供有力的支持,为交流带来清晰的视角。
33 4
|
2月前
|
数据可视化 Python
Python中的数据可视化:使用Matplotlib绘制图表
【9月更文挑战第11天】在这篇文章中,我们将探索如何使用Python的Matplotlib库来创建各种数据可视化。我们将从基本的折线图开始,然后逐步介绍如何添加更多的功能和样式,以使您的图表更具吸引力和信息量。无论您是数据科学家、分析师还是任何需要将数据转化为视觉形式的专业人士,这篇文章都将为您提供一个坚实的起点。让我们一起潜入数据的海洋,用视觉的力量揭示其背后的故事。
56 16
|
2月前
|
机器学习/深度学习 数据可视化 数据挖掘
数据可视化大不同!Python数据分析与机器学习中的Matplotlib、Seaborn应用新视角!
在数据科学与机器学习领域,数据可视化是理解数据和优化模型的关键。Python凭借其强大的可视化库Matplotlib和Seaborn成为首选语言。本文通过分析一份包含房屋面积、卧室数量等特征及售价的数据集,展示了如何使用Matplotlib绘制散点图,揭示房屋面积与售价的正相关关系;并利用Seaborn的pairplot探索多变量间的关系。在机器学习建模阶段,通过随机森林模型展示特征重要性的可视化,帮助优化模型。这两个库在数据分析与建模中展现出广泛的应用价值。
50 2
|
2月前
|
数据可视化 数据挖掘 API
使用Python进行数据可视化:探索Matplotlib和Seaborn库
【9月更文挑战第19天】在数据科学领域,将复杂的数据集转换成直观、易懂的图形是一项基本而关键的技能。本文旨在通过Python编程语言介绍两个强大的数据可视化库——Matplotlib和Seaborn,以及它们如何帮助数据分析师和研究人员揭示数据背后的故事。我们将从基础概念讲起,逐步深入到高级技巧,确保无论读者的背景如何,都能获得必要的知识和启发,以在自己的项目中实现有效的数据可视化。
|
2月前
|
数据可视化 数据挖掘 Python
惊呆了!Python数据分析师如何用Matplotlib、Seaborn秒变数据可视化大师?
在数据驱动时代,分析师们像侦探一样在数字海洋中寻找线索,揭示隐藏的故事。数据可视化则是他们的“魔法棒”,将复杂数据转化为直观图形。本文将带你探索Python数据分析师如何利用Matplotlib与Seaborn这两大神器,成为数据可视化大师。Matplotlib提供基础绘图功能,而Seaborn在此基础上增强了统计图表的绘制能力,两者结合使数据呈现更高效、美观。无论是折线图还是箱形图,这两个库都能助你一臂之力。
44 4
|
2月前
|
机器学习/深度学习 数据采集 监控
Pandas与Matplotlib:Python中的动态数据可视化
Pandas与Matplotlib:Python中的动态数据可视化
下一篇
无影云桌面