IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> Python数据可视化第三节 -> 正文阅读

[人工智能]Python数据可视化第三节

第三章;图表辅助元素的定制

3.1 认识图表常用的辅助元素

图表的辅助元素是指除根据数据绘制的图形之外的元素,常用的辅助元素包括坐标轴、标题、图例、网格、参考线、注释文本和表格,他们都可以对图形进行补充说。
3.2设置坐标轴的标签、刻度范围和刻度标签
坐标轴对数据可视化效果有着直接的影响。坐标轴的刻度范围过大或过小、刻度标签过多或过少,都会导致图形显示的比例不够理想。
3.2.1 设置坐标轴的标签
matplotlib提供了设置x轴和y轴标签的方式,下面分别进行介绍
1.设置x轴的标签
matplotlib中可以直接使用pyplot模块的xlabel()函数设置x轴的标签,xlabel()函数的语法格式如下:

xlabel(xlabel,fontdict=None,labelpad=None,**kwargs)

2.设置y轴的标签
matplotlib中可以直接使用pyplot模块的ylabel()函数设置y轴的标签,ylabel()函数的语法格式如下:

ylabel(ylabel,fontdict=None,labelpad=None,**kwargs)

案例1:
假设现在有一个包含正弦曲线和余弦曲线的图表,改图表中设置x轴和y轴的标签,具体代码如下:

import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = np.linspace(-np.pi, np.pi, 256, endpoint=True)
y1, y2 = np.sin(x), np.cos(x)
plt.plot(x, y1, x, y2)
# 设置 x 轴和 y 轴的标签
plt.xlabel("x轴")
plt.ylabel("y轴")
plt.title("2020080603052")
plt.show()

运行程序,效果如下图:
在这里插入图片描述
3.2.2 设置刻度线和刻度标签
当我们绘制图表时,坐标轴的刻度范围和刻度标签都与数据的分布有这直接的联系,即坐标轴的刻度范围取决于数据的最大值和最小值。下面我们来介绍matplotlib提供了数据重新设置坐标轴的刻度范围和刻度标签的方式,下面我们来进行介绍:
1.设置刻度范围
使用pyplot模块的xlim()和ylim()函数分别可以设置或获取x轴和y轴的刻度范围。xlim()函数的语法如下所示:

xlim(left+None,right=None,emit=True,auto=False,*,xmin=None,xmax=None)

2.设置刻度标签
使用pyplot模块的xticks()和yticks()函数分别可以设置或获取x轴和y轴的刻度范围。xticks()函数的语法如下所示:

xticks(ticks=None,labels=None,**kwarges)

案例2:
代码如下:

import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = np.linspace(-np.pi, np.pi, 256, endpoint=True)
y1, y2 = np.sin(x), np.cos(x)
plt.plot(x, y1, x, y2)
# 设置 x 轴和 y 轴的标签
plt.xlabel("x轴")
plt.ylabel("y轴")
# 设置 x 轴的刻度范围和刻度标签
plt.xlim(x.min() * 1.5, x.max()  * 1.5)
plt.xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi], [r'$-pi$', r'$-pi/2$',
                                                   r'$0$', r'$pi/2$', r'$pi$'])
plt.title("2020080603052")
plt.show()

运行代码,结果如下:
在这里插入图片描述

3.3 添加标题与图例

标题格式代码如下:

title(label,fontdict=None,loc='center',pad=None,**kwarges)

图例格式代码如下:

legend(handles,labels,loc,bbox_to_anchor,ncol,title,shadow,fancybox,*args,**kwargs)

案例3:
代码如下:

import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = np.linspace(-np.pi, np.pi, 256, endpoint=True)
y1, y2 = np.sin(x), np.cos(x)
lines = plt.plot(x, y1, x, y2)
plt.plot(x, y1, x, y2)
# 设置 x 轴和 y 轴的标签
plt.xlabel("x轴")
plt.ylabel("y轴")
# 设置 x 轴的刻度范围和刻度标签
plt.xlim(x.min() * 1.5, x.max()  * 1.5)
plt.xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi], [r'$-\pi$', r'$-\pi/2$',
                                                   r'$0$', r'$\pi/2$', r'$\pi$'])
# 添加标题
plt.title("正弦曲线和余弦曲线 2020080603052")
# 添加图例
plt.legend(lines, ['正弦','余弦'], shadow=True, fancybox=True)
plt.show()

运行代码,结果如下:
在这里插入图片描述
案例4:
代码如下:

# 02_monthly_bills_of_alipay
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
kinds = ['购物', '人情往来', '餐饮美食', '通信物流', '生活日用', '交通出行', '休闲娱乐', '其他']
money_scale = [800 / 3000, 100 / 3000, 1000 / 3000, 200 / 3000, 
               300 / 3000, 200 / 3000, 200 / 3000, 200 / 3000]
dev_position = [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
plt.pie(money_scale, autopct='%3.1f%%', shadow=True, 
        explode=dev_position, startangle=90)
# 添加标题
plt.title('支付宝月账单报告 2020080603052')
# 添加图例
plt.legend(kinds, loc='upper right', bbox_to_anchor=[1.5, 1.1])
plt.show()

运行代码 结果如下:
在这里插入图片描述

3.4 显示网格

显示网格可以帮助我们轻松地查看图形的数值,网格的格式代码如下:

grid(b=None,which='Major',axis='both',**kwargs)

案例5:
代码如下:

# 03_vehicle_speed_and_braking_distance
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False
x_speed = np.arange(10, 210, 10)
y_distance = np.array([0.5, 2.0, 4.4, 7.9, 12.3, 
                       17.7, 24.1, 31.5, 39.9, 49.2,
                       59.5, 70.8, 83.1, 96.4, 110.7,
                       126.0, 142.2, 159.4, 177.6, 196.8])
plt.scatter(x_speed, y_distance, s=50, alpha=0.9, linewidths=0.3)
# 设置 x 轴的标签、刻度标签\
plt.xlabel('速度(km/h)')
plt.ylabel('制动距离(m)')
plt.xticks(x_speed)
plt.title("2020080603052")
# 显示网格
plt.grid(b=True, linewidth=0.3)
plt.show()

运行代码,结果如下:
在这里插入图片描述

3.5 添加参考线和参考区域

3.5.1 添加参考线
1.使用axline()绘制水平参考线
axline()函数的格式代码如下:

axline(y=0,xmin=0,xmax=1,linestyle='_',**kwargs)

2.使用axvline()绘制垂直参考线

axline(x=0,ymin=0,ymax=1,linestyle='_',**kwargs)

案例6:
代码如下:

import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = np.linspace(-np.pi, np.pi, 256, endpoint=True)
y1, y2 = np.sin(x), np.cos(x)
lines = plt.plot(x, y1, x, y2)
# 设置 x 轴和 y 轴的标签
plt.xlabel("x轴")
plt.ylabel("y轴")
# 设置 x 轴的刻度范围和刻度标签
plt.xlim(x.min() * 1.5, x.max()  * 1.5)
plt.xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi], [r'$-\pi$', r'$-\pi/2$',
                                                   r'$0$', r'$\pi/2$', r'$\pi$'])
# 添加标题
plt.title("正弦曲线和余弦曲线 2020080603052")
# 添加图例
plt.legend(lines, ['正弦', '余弦'], shadow=True, fancybox=True)
# 显示网格
plt.grid(b=True, axis='y', linewidth=0.3)
# 添加参考线
plt.axvline(x=0, linestyle='--')
plt.axhline(y=0, linestyle='--')
plt.show()

运行代码,结果如下:
在这里插入图片描述
3.5.2添加参考区域:
1.使用axhspan()绘制水平参考区域
格式代码如下:

axhspan(ymin,ymax,xmin=0,xmax,**kwarges)

2.使用axvspan()绘制参考区域:
格式代码如下:

axvspan(xmin,xmax,ymin=0,ymax=1,**kwargs)

案例7:
代码如下:

import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = np.linspace(-np.pi, np.pi, 256, endpoint=True)
y1, y2 = np.sin(x), np.cos(x)
lines = plt.plot(x, y1, x, y2)
# 设置 x 轴和 y 轴的标签
plt.xlabel("x轴")
plt.ylabel("y轴")
# 设置 x 轴的刻度范围和刻度标签
plt.xlim(x.min() * 1.5, x.max()  * 1.5)
plt.xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi], [r'$-\pi$', r'$-\pi/2$',
                                                   r'$0$', r'$\pi/2$', r'$\pi$'])
# 添加标题
plt.title("正弦曲线和余弦曲线 2020080603052")
# 添加图例
plt.legend(lines, ['正弦', '余弦'], shadow=True, fancybox=True)
# 显示网格
plt.grid(b=True, axis='y', linewidth=0.3)
# 添加参考线
plt.axvline(x=0, linestyle='--')
plt.axhline(y=0, linestyle='--')
# 添加参考区域\n",
plt.axvspan(xmin=0.5, xmax=2.0, alpha=0.3)
plt.axhspan(ymin=0.5, ymax=1.0, alpha=0.3)
plt.show()

运行代码,结果如下:
在这里插入图片描述
案例7:
代码如下:

# 04_average_score_of_english
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
men_means = (90.5, 89.5, 88.7, 88.5, 85.2, 86.6)
women_means = (92.7, 87.0, 90.5, 85.0, 89.5, 89.8)
ind = np.arange(len(men_means))  # 每组柱形的 x 位置
width = 0.2                      # 各柱形的宽度
fig = plt.figure()
ax = fig.add_subplot(111)
ax.bar(ind - width / 2, men_means, width, label='男生平均成绩')
ax.bar(ind + 0.2, women_means, width, label='女生平均成绩')
ax.set_title(' 高二各班男生、女生英语平均成绩 2020080603052')
ax.set_ylabel('分数')
ax.set_xticks(ind)
ax.set_xticklabels(['高二1班', '高二2班', '高二3班', '高二4班', '高二5班', '高二6班'])
# 添加参考线
ax.axhline(88.5, ls='--', linewidth=1.0, label='全体平均成绩')
ax.legend(loc="lower right")
plt.show()

运行代码,结果如下:
在这里插入图片描述

3.6 添加注释文本

3.6.1 添加指向型注释文本
格式代码如下:

annotate(s,xy,*arges,**kwarges)

3.6.2 添加五指向型注释文本
格式代码如下:

text(x,y,s,fontdict=None,withdash<deprecated parameter>,**kwargs)

案例8:
代码如下:

import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = np.linspace(-np.pi, np.pi, 256, endpoint=True)
y1, y2 = np.sin(x), np.cos(x)
lines = plt.plot(x, y1, x, y2)
# 设置 x 轴和 y 轴的标签
plt.xlabel("x轴")
plt.ylabel("y轴")
# 设置 x 轴的刻度范围和刻度标签
plt.xlim(x.min() * 1.5, x.max()  * 1.5)
plt.xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi], [r'$-\pi$', r'$-\pi/2$',
                                                   r'$0$', r'$\pi/2$', r'$\pi$'])
# 添加标题
plt.title("正弦曲线和余弦曲线 2020080603052")
# 添加图例
plt.legend(lines, ['正弦', '余弦'], shadow=True, fancybox=True)
# 显示网格
plt.grid(b=True, axis='y', linewidth=0.3)
# 添加参考线
plt.axvline(x=0, linestyle='--')
plt.axhline(y=0, linestyle='--')
# 添加参考区域\n",
plt.axvspan(xmin=0.5, xmax=2.0, alpha=0.3)
plt.axhspan(ymin=0.5, ymax=1.0, alpha=0.3)
# 添加指向型注释文本\n",
plt.annotate("最小值",
             xy=(-np.pi / 2, -1.0),
             xytext=(-(np.pi / 2), -0.5),
             arrowprops=dict(arrowstyle="->"))
# 添加无指向型注释文本
plt.text(3.10, 0.10, "y=sin(x)", bbox=dict(alpha=0.2))
plt.show()

运行代码,结果如下:
在这里插入图片描述
案例9:
代码如下:

# 05_taobao_and_tianmao_GMV
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = np.arange(1, 8)
y = np.array([10770, 16780, 24440, 30920, 37670, 48200, 57270])
bar_rects = plt.bar(x, y, tick_label=["FY2013", "FY2014", "FY2015",
                                      "FY2016", "FY2017", "FY2018", "FY2019"], width=0.5)
# 添加无指向型注释文本
def autolabel(rects):
    """ 在每个矩形条的上方附加一个文本标签, 以显示其高度"""
    for rect in rects:
        height = rect.get_height()    #  获取每个矩形条的高度
        plt.text(rect.get_x() + rect.get_width() / 2, height + 300, s='{}'.format(height),
                 ha='center', va='bottom')
autolabel(bar_rects)
plt.ylabel('GMV(亿元)')
plt.title("2020080603052")
plt.show()

运行代码,结果如下:
在这里插入图片描述

3.7 添加表格

3.7.1 添加自定义样式的表格
格式代码如下:

table(cellText=None,cellColours=None,cellLoc='right',colWidth=None,rowLabels=None,rowColours=None,rowLoc='left',colLabels=None,colColours=None,colLoc='center',loc='bottom',bbox=None,edges='closed',**kwargs)

案例10:
代码如下:

import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = np.linspace(-np.pi, np.pi, 256, endpoint=True)
y1, y2 = np.sin(x), np.cos(x)
lines = plt.plot(x, y1, x, y2)
# 设置 x 轴和 y 轴的标签
plt.xlabel("x轴")
plt.ylabel("y轴")
# 设置 x 轴的刻度范围和刻度标签
plt.xlim(x.min() * 1.5, x.max()  * 1.5)
plt.xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi], [r'$-\pi$', r'$-\pi/2$',
                                                   r'$0$', r'$\pi/2$', r'$\pi$'])
# 添加标题
plt.title("正弦曲线和余弦曲线 2020080603052")
# 添加图例
plt.legend(lines, ['正弦', '余弦'], shadow=True, fancybox=True)
# 显示网格
plt.grid(b=True, axis='y', linewidth=0.3)
# 添加参考线
plt.axvline(x=0, linestyle='--')
plt.axhline(y=0, linestyle='--')
# 添加参考区域\n",
plt.axvspan(xmin=0.5, xmax=2.0, alpha=0.3)
plt.axhspan(ymin=0.5, ymax=1.0, alpha=0.3)
# 添加指向型注释文本\n",
plt.annotate("最小值",
             xy=(-np.pi / 2, -1.0),
             xytext=(-(np.pi / 2), -0.5),
             arrowprops=dict(arrowstyle="->"))
# 添加无指向型注释文本
plt.text(3.10, 0.10, "y=sin(x)", bbox=dict(alpha=0.2))
# 添加表格\n",
plt.table(cellText=[[6, 6, 6], [8, 8, 8]], 
          colWidths=[0.1] * 3, 
          rowLabels=['第1行', '第2行'], 
          colLabels=['第1列', '第2列', '第3列'], loc='lower right')
plt.show()

运行代码,结果如下:
在这里插入图片描述

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-03-12 17:30:27  更:2022-03-12 17:32:03 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 15:28:33-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码