探索数据可视化:Matplotlib 基础指南

news/2024/6/18 21:42:00 标签: 信息可视化, matplotlib, python, 学习, 笔记

图形绘制

python">import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

x = np.linspace(0,2 * np.pi,100)

# 说明:正弦波。x:NumPy数组
# 所有的数据,进行正弦计算
y = np.sin(x)


plt.plot(x,y)

# 指定x轴范围
plt.xlim(-1,10)
# 指定y轴范围
plt.ylim(-1.5,1.5)

# color = 'green' 指定网格颜色;
# alpha = 0.5 指定网格线的透明度
# linestyle = '--' 指定网格线的线型
# linewidth = 1 指定网格线的线宽
plt.grid(color = 'green',alpha = 0.5,linestyle = '--',linewidth = 1)

在这里插入图片描述

设置字体、坐标轴刻度、标签、标题

python"># 查看字体
from matplotlib import font_manager
fm = font_manager.FontManager()
[font.name for font in fm.ttflist][:10] # 列表生成式,只拿前10个字体
"""
['cmb10',
 'cmex10',
 'DejaVu Sans Mono',
 'DejaVu Serif',
 'STIXSizeOneSym',
 'DejaVu Serif',
 'STIXSizeThreeSym',
 'DejaVu Serif',
 'cmtt10',
 'STIXGeneral']
"""

# figsize=(9,6) 指定图形窗口的大小;图形窗口宽度为 9 英寸,高度为 6 英寸。
plt.figure(figsize=(9,6))
plt.plot(x,y)

# 设置字体
# STKaiti 常用于显示中文文本
plt.rcParams['font.family'] =  'STKaiti'
# 设置字体大小
plt.rcParams['font.size'] = 28
# 设置数字负号
plt.rcParams['axes.unicode_minus'] = False

# 设置标题
plt.title('正弦波',fontsize = 18, color = 'red',pad = 20)

# 设置x与y轴标签
plt.xlabel('X')
plt.ylabel('f(x) = sin(x)',rotation = 0,horizontalalignment = 'right')

# yticks 用于设置 y 轴的刻度位置和标签
#[-1, 0, 1] 指定 y 轴三个刻度位置分别为 -1、0 和 1。
a = plt.yticks([-1,0,1])

# 设置x轴刻度
# [0, np.pi/2, np.pi, 1.5*np.pi, 2*np.pi] 指定x 轴上显示的刻度位置
# [0, r'$\frac{\pi}{2}$', r'$\pi$', r'$\frac{3\pi}{2}$', r'$2\pi'] 是与刻度位置对应的标签列表。
# 这里使用了 LaTeX 格式来显示数学符号
_ = plt.xticks([0,np.pi/2,np.pi,1.5*np.pi,2*np.pi],
               [0,r'$\frac{\pi}{2}$',r'$\pi$',r'$\frac{3\pi}{2}$',r'$2\pi$'],color = 'red')# 字符串前面+r表示转义

在这里插入图片描述

图例

python"># 1、图形绘制

x = np.linspace(0,2*np.pi) # x轴

y = np.sin(x) # y轴 正弦

# 绘制线形图
plt.figure(figsize=(9,6)) # 调整尺寸
plt.plot(x,y)
plt.plot(x,np.cos(x)) # 余弦波
plt.plot(x,np.sin(x) + np.cos(x))


# 2、图例
plt.legend(['Sin','Cos','Sin + Cos'],fontsize = 18,
           loc = 'center',
           ncol = 3,
           bbox_to_anchor = (0,1,1,0.2)) # x,y,widht,height
<matplotlib.legend.Legend at 0x2761cc3e208>

在这里插入图片描述

脊柱移动(坐标轴)

“脊柱”(Spines)是图形的四个边框线,它们分别位于图形的顶部、底部、左侧和右侧。你可以通过调整脊柱的位置来实现脊柱移动

python">x = np.linspace(-np.pi,np.pi,50)
# 设置数字负号
plt.rcParams['axes.unicode_minus'] = False
# facecolor ='lightblue' 设置图形对象的背景颜色为浅蓝色
plt.figure(figsize=(9,6),facecolor='lightblue')

# plot绘制了两个图形,x-y成对出现
plt.plot(x,np.sin(x),x,np.cos(x),color = 'cyan')

# 获取当前子视图
ax = plt.gca() # 获取当前视图

# 将图形对象 ax 的背景颜色设置为一个随机生成的颜色
ax.set_facecolor(np.random.rand(3))

# 右边和上面脊柱消失
# ax.spines['right'].set_color('white') # 右边脊柱设置为白色
ax.spines['right'].set_alpha(0)
ax.spines['top'].set_alpha(0)

# 设置下面左边脊柱位置,data表示数据,axes表示相对位置0~1
ax.spines['bottom'].set_position(('data',0)) # 底部脊柱定位在 y 轴的 0 点上(竖直中间)
ax.spines['left'].set_position(('data',0)) # 水平中间

# 设置刻度及刻度标签
plt.yticks([-1,0,1],labels=['-1','0','1'],fontsize = 18)
_ = plt.xticks([-np.pi,-np.pi/2,np.pi/2,np.pi],
           labels=[r'$-\pi$',r'$-\frac{\pi}{2}$',r'$\frac{\pi}{2}$',r'$\pi$'],
           fontsize = 18)

# 显示网格线
plt.grid()

# 将图形以 300 DPI 的分辨率保存为一个 PDF 文件,文件名为 2.pdf,保存在当前工作目录中
plt.savefig('./2.pdf',dpi = 300)

在这里插入图片描述

风格样式

颜色、线形、点形、线宽、透明度
python">x = np.linspace(0,2*np.pi,20) # 等差数列,20个
y1 = np.sin(x)
y2 = np.cos(x)

# color = indigo:颜色为靛蓝色,线型,点型
# ls='-.': 设置线条的线型为点划线
# marker='p': 设置数据点的标记为五边形(pentagon)
plt.plot(x, y1, color = 'indigo', ls = '-.', marker = 'p')

# rgb颜色表示 256 0 ~ 255 
# 0 、1、2……A、B、C、D、E、F
# marker='o'数据点标记为圆形
plt.plot(x, y2, color = '#FF00EE', ls = '--', marker = 'o')

# 0 ~ 1之间
plt.plot(x, y1 + y2, color = (0.2,0.7,0.2), ls = ':', marker = '*')

# 线宽设置为5
# 透明度为0.3
plt.plot(x,y1 + 2*y2,linewidth = 5,alpha = 0.3,color = 'orange') 

# 参数连用:参数含义:b --- blue; o marker圆圈; --虚线
plt.plot(x, 2*y1 - y2, 'bo--') 
[<matplotlib.lines.Line2D at 0x2761c671308>]

在这里插入图片描述

python">def f(x):
    return np.exp(-x) * np.cos(2*np.pi*x)

x = np.linspace(0,5,50)
plt.figure(figsize=(9,6))


# plot 参数
plt.plot(x,f(x),color = 'purple',
         ls = '--', # 折线样式
         lw = 2, # 线宽
         alpha = 0.6, # 折线的透明度
         marker = 'o', #  数据点为圆形
         markerfacecolor = 'red',# 点颜色
         markersize = 10,# 点大小
         markeredgecolor = 'green',#点边缘颜色
         markeredgewidth = 3)#点边缘宽度


plt.xticks(size = 18) # 设置刻度标签的字体大小为 18 磅
_ = plt.yticks(size = 18)

在这里插入图片描述


http://www.niftyadmin.cn/n/5416948.html

相关文章

HTML5 基础1

<b> 和 <strong>的异同 相同点&#xff1a;在显示上&#xff0c;这两个标签都是加粗文本。 不同点&#xff1a;使用网页阅读器阅读网页&#xff08;盲人使用&#xff09;&#xff0c;strong 会重读&#xff0c;b 则不会。从起源上来说&#xff0c;strong 是为了在…

解决约束满足问题的SMT求解器——基于z3+Python的入门案例

文章目录 1. 前言2. 约束满足问题 CSP/SAT/SMT 的联系与区别2.1 Constraint Satisfaction Problem2.2 Boolean Satisfiability Problem2.3 Satisfiability Modulo Theories3. SMT 求解器 —— z3-solver3.1 通过 pip 安装 z33.2 基于Python的入门案例1. 前言 近年来,在一些实…

信息系统项目管理师003:信息化(1信息化发展—1.1信息与信息化—1.1.3 信息化)

文章目录 1.1.3 信息化1.信息化内涵2.信息化体系3.信息化趋势 要点总结 1.1.3 信息化 信息化是一个过程&#xff0c;与工业化、现代化一样&#xff0c;是一个动态变化的过程。信息化是指培养、发展以计算机为主的智能化工具为代表的新生产力&#xff0c;并使之造福于社会的历史…

小白跟做江科大51单片机之AD/DA

1.看原理图找接口 2.看时序图编写读取数据代码 XPT2046.c代码 #include <REGX52.H> //引脚定义 sbit XPY2046_DINP3^4; sbit XPY2046_CSP3^5; sbit XPY2046_DCLKP3^6; sbit XPY2046_DOUTP3^7; unsigned int XPT2046_ReadAD(unsigned char Command) { unsigned char …

C语言死循环是怎样产⽣的?

一、问题 死循环是指程序⽆法退出或者⽆法进⼊下⼀次循环。那么&#xff0c;什么情况会产⽣死循环呢&#xff1f; 二、解答 1、问题的产⽣ C语⾔中常⽤3种循环语句&#xff0c;这些循环语句各有特点&#xff0c;while 和 do...while 经常⽤在循环次数不确定的场合&#xff1b…

律师事务所案件管理新宠:Java+SpringBoot+Vue+MySQL实战

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…

seata2.0服务器日志位置修改

seata2.0日志位置修改 在使用seata的时候我们的日志文件总是会生成在 /root/logs/seata/ *.log 这个位置&#xff0c;与我们的服务部署位置不同&#xff0c;这导致我们查看日志信息非常不方便&#xff0c;所以我们切换一下日志输出位置。 查看配置文件 /conf/application.yaml…

10个高级的SQL查询方法

大家好&#xff0c;SQL 是管理和分析关系数据库的基本工具。掌握基本的SQL命令能够完成简单的数据查询和操作&#xff0c;但是如果想从数据中提取更有价值的信息&#xff0c;数据分析工作者应该深入学习和掌握高级的SQL技巧。 1.窗口函数 窗口函数是指在SQL查询中对一组相关行…