第五章. 可视化数据分析图表—图表的常用设置2

第五章. 可视化数据分析图

5.2 图表的常用设置2

本节主要介绍图表的常用设置,设置标题和图例,添加注释文本,调整图表与画布边缘间距以及其他设置。

7.设置标题(title)

1).语法:

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

参数说明:
label:图表标题文本
fontdict:字典,用于设置标题字体的样式,如’{‘fontsize’:10,‘fontweight’:10,‘va’:‘bottom’,‘ha’:‘center’}’
loc:标题水平位置,参数:center,left,right
pad:标题距离图表顶部的距离

8.设置图例(legend)

1).语法:

matplotlib.pyplot.legend(*args, **kwargs)

参数说明:
可设置很多参数,如图例名称,显示位置,轴与图例之间的距离

2).图例显示方式:

  • 自动显示:
    matplotlib.pyplot.legend()
    
  • 手动添加:
    matplotlib.pyplot.legend(('图书采购价目',), loc='upper right')
    
    注:手动添加图例时,有时文本会显示不全,在文本后面加一个逗号(,)可解决,例如:(‘图书采购价目’,)

3).图例显示位置:(loc)

位置(字符串)位置索引描述位置(字符串)位置索引描述
best0自适应center left6左侧中间位置
upper right1右上方center right7右侧中间位置
upper left2左上方lower center8下方中间位置
lower left3左下方upper center9上方中心位置
lower right4右下方center10中心
right5右侧

注:

  • 参数bbox_to_anchor也可对图例的位置进行控制,元组类型 bbox_to_anchor =(num1,num2),num1:控制legend左右移动(值越大越向右移动),num2:控制legend上下移动(值越大越向上移动)
  • 参数borderaxespad,可控制轴和图例边框之间的间距,字体大小为单位度量

9.添加注释(annotate)

在图表上给数据添加文本注释,描述信息

1).语法:

matplotlib.pyplot.annotate(s, xy, *args, **kwargs)

参数说明:
s:标注文本
xy:要标注的点,二维元组(x,y)。
xytext:可选的,文本的位置,二维元组(x,y)。如果没有设置,默认为要标注的点的坐标。
xycoords:可选的,点的坐标系。字符串、Artist、Transform、callable或元组。
arrowprops:箭头的样式,dict型数据,如果属性为空,则会在注释文本和被注释点之间画箭头

2).xycoords参数设置及说明

设置值说明
figure points以图的左下角为参考,单位点数
figure pixels以图的左下角为参考,单位像素数
figure fraction以图的左下角为参考,单位百分比
axes points以子图的左下角为参考,单位点数(一个figure可以有多个axes )
axes pixels以子图的左下角为参考,单位像素数
axes fraction以子图的左下角为参考,单位百分比
data以被注释的坐标点x,y为参考(默认值)
polar不使用本地数据坐标系,使用极坐标系

3).arrowprops参数设置及说明

设置值说明
width箭头的宽度,单位点
headwidth箭头头部的宽度,单位点
headlength箭头头部的长度,单位点
shrink箭头两端收缩的百分比(占总比)
任何matplotlib.patches.FancyArrowPatch中的关键字

10.调整图表与画布边缘间距(subplots_adjust)

绘制图表的时候,由于x,y轴标题与画布边缘距离太近,而显示不全,可通过subplots_adjust函数来调节图表和画布之间的距离

1).语法:

matplotlib.pyplot.subplots_adjust(left=None,bottom=None,right=None,top=None,wspace=None,hspace=None)

参数说明:
left,bottom,right,top:调整上下左右的空白,left和bottom值越小,空白越小,right和top,值越大,空白越小(画布是从左下角开始,取值0~1)
wspace,hspace:用于调节列间距和行间距

11.是否显示坐标轴上的刻度线以及显示方向(tick_params)

绘制图表的时候,left,bottom,right,top四个方向的刻度线是否显示,以及x,y轴刻度线的显示方向

1).4个坐标轴上的刻度线是否显示语法:

matplotlib.pyplot.tick_params(axis='both', **kwargs)

参数说明:
axis:将参数应用于哪个轴,{‘ x ‘, ‘ y ‘, ‘ both ‘},可选,默认‘ both ‘

2).x,y轴刻度线显示方向语法:

matplotlib.pyplot.rcParams['xtick.direction'] = 'in'
matplotlib.pyplot.rcParams['ytick.direction'] = 'in'

参数说明:
direction:将刻度置于坐标轴内、轴外,或同时置于两者 ‘,{‘in’, ‘out’, ‘inout’}可选,默认 ‘out’

12.上述函数的应用

1).结果展示:

在这里插入图片描述

2).代码:

import pandas as pd
import matplotlib.pyplot as plt

pd.set_option('display.unicode.east_asian_width', True)
df = pd.read_excel('F:\\Note\\清单.xlsx', sheet_name='Sheet1', usecols=['原价', '书名'])
print(df)

# 设置画布
fig = plt.figure(figsize=(6, 4), facecolor='y')

plt.rcParams['font.sans-serif'] = ['SimHei']  # 解决中文乱码
plt.rcParams['axes.unicode_minus'] = False  # 解决负号不显示的问题

# X,Y轴刻度线的显示方向
plt.rcParams['xtick.direction'] = 'in'
plt.rcParams['ytick.direction'] = 'in'


# 设置线
plt.plot(df['书名'], df['原价'], color='c', linestyle='-', marker='o', mfc='w')

# 设置网格线
plt.grid(color='0.5', linestyle='--', linewidth=1)

# 设置x,y轴坐标
plt.xlabel('书名')
plt.ylabel('原价')

# 设置坐标轴刻度
plt.xticks(df['书名'])

# 设置文本标签
for x, y in zip(df['书名'], df['原价']):
    plt.text(x, y, '%.2f' % y, ha='center', va='bottom', fontsize=9)

# 设置标题和图例
plt.title('图书采购价目表')

# 设置图标图例
plt.legend(('图书采购价目',), loc='upper right')  # 手动添加图例时,有时文本会显示不全,在文本后面加一个逗号(,)可解决,例如('图书采购价目',)

# 添加注释
plt.annotate('价目最低', xy=(df['书名'][2], df['原价'][2]), xytext=(df['书名'][2], df['原价'][2] + 2), xycoords='data',
             arrowprops=dict(facecolor='r', shrink=0.05))

# 调整图表与画布边缘间距
plt.subplots_adjust(left=0.15, bottom=0.15, right=0.9, top=0.9)

# 坐标轴的刻度线向内显示还是向外显示
plt.tick_params(left=True, bottom=True, right=False, top=False)

# 显示图像
plt.show()

注意:图表的常用设置:颜色设置,线条样式,标记样式,设置画布,坐标轴,添加文本标签,在图表的常用设置1 中介绍

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值