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 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 数据可视化——图表辅助元素的定制 -> 正文阅读

[人工智能]数据可视化——图表辅助元素的定制

一、认识图表常用的辅助元素

常用的辅助元素包括坐标轴、标题、图例、网格、参考线、参考区域、注释文和表格
在这里插入图片描述

二、设置坐标轴的标签、刻度范围和刻度标签

1、设置x轴的标签matplotlib中可以直接使用pyplot模块的xlabel()函数设置x轴的标签,xlabel()函数的语法格式如下:

xlabel(xlabel,fontdict=None, labelpad=None,**kwargs)
  • xlabel:表示x轴标签的文本
  • fontdict:表示控制标签文本样式的字典
  • labelpad:表示标签与坐标轴边框

1.2、设置y轴的标签

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

该图标中设置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)
plt.xlabel("x轴")
plt.ylabel("y轴")
plt.title('2020080603039')
plt.show()

效果如下:
在这里插入图片描述
2、设置刻度范围
2.1、设置刻度范围
为模块的xlim()和ylim()函数分别设置或获取y轴和x轴的刻度范围

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

该函数常用的参数含义如下:

  • left:表示x轴刻度取值区间的左位数
  • right:表示x轴刻度取值区间的右位数
  • emit:表示是否通知限制变化的观察者,默认为True
  • auto:表示是否允许自动缩放x轴,默认为True
  • xmin:表示x轴刻度的最小值
  • xmax:表示x轴刻度的最大值
    Axes对象可以使用set_xlim()和set_ylim()方法分别设置x轴和y轴
    2.2、设置刻度标签
xticks(ticks=None, labels=None,**kwargs)

使用的代码如下:
在这里插入图片描述
其中完整代码为:

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)
plt.xlabel("x轴")
plt.ylabel("y轴")
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('2020080603039')
plt.show()

运行效果为:
在这里插入图片描述

三、添加标题和图例

1、添加标题
使用模块title()函数添加图表标签,语法如下:

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

参数的含义:

  • loc:表示标题的对齐样式,包括‘left’,‘right’,‘center’三种取值,默认取值为‘center’,即居中显示标题
  • pad:表示标题与图表顶部的距离,默认为None
    添加标题
plt.title("正弦曲线和余弦曲线 ")
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)
plt.xlabel("x轴")
plt.ylabel("y轴")

plt.title("正弦曲线和余弦曲线 39")
plt.show()

运行结果如下:
在这里插入图片描述
2、添加图例
使用模块legend()函数添加图例,语法格式如下:

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

调用legend()函数添加图例

lines=plt.plot(x,y1,x,y2)
plt.legend(lines,['正弦','余弦'],shadow=True,fancybox=True)

运行程序为
在这里插入图片描述
图例常见于饼图中,其中代码为:

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,300/3000,
200/3000,200/3000,200/3000,200/3000]
dev_position=[0.1,0.4,0.1,0.3,0.1,0.1,0.1,0.2]
plt.pie(money_scale,labels=kinds,autopct='%3.lf%%',
shadow=True,explode=dev_position,startangle=90)#逆时针开始绘制90度
plt.title('2020080603039')
plt.legend(kinds,loc='upper right',bbox_to_anchor=[1.6,1.1])
plt.show()

其中运用到的loc 可以设置图例的位置,bbox_to_anchor可以设置图例离饼图的距离
运行结果如下:
在这里插入图片描述
4、显示网格
使用模块grid()函数显示网格,grid()函数得语法格式如下所示:

grid(b=None, which='major',axis='both',**kwargs)
  • b表示是否显示网格。若提供其他关键字参数,则b设为True
  • which:表示显示网格的类型,支持major、minor、both这3种类型,默认为major
  • axis:表示显示哪个方向的网格,该参数支持both、x和y这3个选择,默认为both
  • linewidth:表示网格线的宽度
    绘制网格,添加的代码如下:
 plt.grid(b=True,axis='y',linewidth=0.4)

完整代码如下:

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)
plt.xlabel("x轴")
plt.ylabel("y轴")
plt.grid(b=True,axis='y',linewidth=0.6)
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.legend(lines,['正弦','余弦'],shadow=True,fancybox=True)
plt.title('2020080603039')
plt.show()

ps:因为之前在写其他的代码的时候已经导过包,所以这里没有在进行导包的编写

运行结果如下:
在这里插入图片描述
4.2、实例显示网格,用散点图表示,并调整坐标轴的刻度
代码如下:

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.3,31.5,39.8,49.9,59.3,70.8,
                     83.1,96.7,110.7,126.0,142.9,
                    159.9,177.6,196.5])
plt.scatter(x_speed,y_distance,s=60,alpha=1,linewidths=0.3)
plt.xlabel('速度(km/h)')
plt.ylabel('制动距离(m)')
plt.xticks(x_speed)
plt.grid(b=True,linewidth=0.4)
plt.title('2020080603039')
plt.show()

运行结果如下:
在这里插入图片描述
5、添加参考线
5.1.1、使用axhine()绘制水平参考线
语法格式如下:

axhline(y=0, xmin=0,xmax=1,linestule='-')
  • y:表示纵坐标
  • xmin:表示水平参考线的起始位置,默认wei0
  • xmax:表示水平参考线的终止位置,默认为1
  • linextyle:表示水平位置参考线的类型,默认值为实线
    5.1.2、使用axvline()绘制垂直参考线
    语法格式如下:
axvline(x=0, ymin=0,xmax=1,linestule='-')

绘制的正弦和余弦曲线图中添加参考线,添加的代码如下:

plt.axvline(x=0,linestyle='--')
plt.axhline(y=0,linestyle='--')

完整代码如下:

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)
plt.xlabel("x轴")
plt.ylabel("y轴")
plt.grid(b=True,axis='y',linewidth=0.6)
plt.axvline(x=0,linestyle='--')
plt.axhline(y=0,linestyle='--')
plt.title('2020080603039')
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.legend(lines,['正弦','余弦'],shadow=True,fancybox=True)
plt.show()

运行结果如下:
在这里插入图片描述
5.2、添加区域
5.2.1、使用axhspan()绘制水平参考区域
语法格式如下:

axhspan(ymin, ymin,xmin=0,xmax=1**kwargs)
  • ymin:表示水平跨度的下限,以数据为单位
  • ymax:表示水平跨度的上限,以数据为单位

5.2.2、使用axvspan()绘制垂直参考区域
语法格式如下:

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

增加的代码如下:

plt.axvspan(xmin=0.5,xmax=2.0,alpha=0.3)
plt.axhspan(ymin=0.5,ymax=1.0,alpha=0.3)

完整代码:

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)
plt.xlabel("x轴")
plt.ylabel("y轴")
plt.axvline(x=0,linestyle='--')
plt.axhline(y=0,linestyle='--')
plt.grid(b=True,axis='y',linewidth=0.6)
plt.axvspan(xmin=0.5,xmax=2.0,alpha=0.3)
plt.axhspan(ymin=0.5,ymax=1.0,alpha=0.3)
plt.title('2020080603039')
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.legend(lines,['正弦','余弦'],shadow=True,fancybox=True)
plt.show()

运行效果如下:
在这里插入图片描述
运用实例,更加直观

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.6,88.7,88.6,86.5,84.6)
women_means=(92.8,87.0,90.5,85.4,89.6,90.2)
ind=np.arange(len(men_means))
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('高二各班男生、女生英语平均成绩')
ax.set_ylabel('分数')
ax.set_xticks(ind)
ax.set_xticklabels(['高二1班','高二2班','高三3班','高三4班','高三5班','高三6班'])
ax.axhline(88.5,ls='-.',linewidth=2.0,label='全体平均成绩')
ax.legend(loc="lower right")
plt.title('2020080603039')
plt.show()

运行结果:
在这里插入图片描述
6、添加注释文本
6.1、添加指向型注释文本
使用annotate()函数,语法如下:

annotate(s, xy ,*args,**kwargs)
  • s:表示注释文本的内容
  • xy:表示被注释文本所在的坐标位置,接收元组(x,y)
  • xytext:表示注释文本所在的坐标位置,接收元组(x,y)
  • xycorrds:表示xy的坐标系统,默认值为‘data’,代表与折线图使用相同的坐标系统
  • arrowprops:表示指示箭头的属性字典
  • bbox:表示注释文本的边框属性字典
    添加的代码如下:
plt.annotate("最小值",xy=(-np.pi /2,-1.0),
            xytext=(-(np.pi / 2),-0.5),
            arrowprops=dict(arrowstyle="->"))

完整代码如下:

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)
plt.xlabel("x轴")
plt.ylabel("y轴")
plt.axvline(x=0,linestyle='--')
plt.axhline(y=0,linestyle='--')
plt.grid(b=True,axis='y',linewidth=0.6)
plt.axvspan(xmin=0.5,xmax=2.0,alpha=0.3)
plt.axhspan(ymin=0.5,ymax=1.0,alpha=0.3)
plt.title('2020080603039')
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.legend(lines,['正弦','余弦'],shadow=True,fancybox=True)
plt.annotate("最小值",xy=(-np.pi /2,-1.0),
            xytext=(-(np.pi / 2),-0.5),
            arrowprops=dict(arrowstyle="->"))
plt.show()

运行效果如下:
在这里插入图片描述
6.2、添加无指向型注释文本
提供了text()函数为图添加无指向型注释文本,该函数的语法格式为:

text(x,y,s,fontdict=None,widthdash=<deprecated parameter>,**kwargs )
  • fontdict:控制字体的字典

添加的代码如下:

plt.text(3.10,0.10,"y=sin(x)",bbox=dict(alpha=0.2))

完整的代码如下:

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)
plt.xlabel("x轴")
plt.ylabel("y轴")
plt.axvline(x=0,linestyle='--')
plt.axhline(y=0,linestyle='--')
plt.grid(b=True,axis='y',linewidth=0.6)
plt.axvspan(xmin=0.5,xmax=2.0,alpha=0.3)
plt.axhspan(ymin=0.5,ymax=1.0,alpha=0.3)
plt.title('2020080603039')
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.legend(lines,['正弦','余弦'],shadow=True,fancybox=True)
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()

运行结果为:
在这里插入图片描述
实例:添加无指向型注释文本,代码如下:

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([10070,16780,24440,25640,37607,48520,53410])
bar_rects=plt.bar(x,y,tick_label=["FY2013","FY2014","FY2015","FY2016","FY2017","FY2018","FY2019"],width=0.6)
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.xlabel('年份')
plt.title("2020080603039")
plt.show()

运行结果为:
在这里插入图片描述
7、添加自定义样式表格
使用table()函数
添加的代码如下:

plt.table(cellText=[[6,6,6],[8,8,8,]],
          colWidths=[0.1]*3,
          colLabels=['第1列','第2列','第3列'],loc='lower right')

运行结果为:
在这里插入图片描述

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-03-10 22:31:02  更:2022-03-10 22:34:22 
 
开发: 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 16:59:42-

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