1.1 认识图表常用的辅助元素:
(1)坐标轴:分为单坐标轴和双坐标轴,单坐标轴按不同的方向又可分为水平坐标轴(又
称x轴)和垂直坐标轴(又称y轴)。
·(2)标题:表示图表的说明性文本。
.(3)图例:用于指出图表中各组图形采用的标识方式。
·(4)网格:从坐标轴刻度开始的、贯穿绘图区域的若干条线,用于作为估算图形所示值的
.(4)参考线:标记坐标轴上特殊值的一条直线。·参考区域:标记坐标轴上特殊范围的一块区域。
(5)·注释文本:表示对图形的一些注释和说明。
(6)·表格:用于强调比较难理解数据的表格。
2.设置坐标抽的标签,刻度范围和刻度标签
2.1设置刻度范围,刻度标签。
1.设置刻度范围
使用pyplot模块的xlim( )和ylim( )函数分别可以设置或或者x轴和y轴的刻度范围。
xlim( )函数的语法格式如下:
xlim(left=None,right=None,emit=True,auto=False,*,xmin=None,
xmax=None)
该函数常用参数的含义如下。
(1)·left:表示x轴刻度取值区间的左位数。
(2)right:表示x轴刻度取值区间的右位数。
(3)emit:表示是否通知限制变化的观察者,默认为True。
(4)auto:表示是否允许自动缩放x轴,默认为True。
(5)xmin:表示x轴刻度的最小值。
(6)xmax:表示x轴刻度的最大值。
此外,Axes 对象可以使用set_xlim0和set_ylim0方法分别设置x轴和y轴的刻度范围。
2.2设置刻度标签
使用pyplot 模块的xticksO和yticksO函数分别可以设置或获取x轴和y轴的刻度线位置和刻度标签。
下ticks( )函数的语法格式如下所示:
xticks (ticks=None, labels=None,**kwargs)
该函数的 ticks 参数表示刻度显示的位置列表,它还可以设为空列表,以此禁用x轴的刻度;labels 表示指定位置刻度的标签列表。
此外,Axes 对象可以使用set_xticks( )或set_yticks( )方法分别设置x轴或y轴的刻度线位置,使用set_xticklabels( )或set_yticklabels( )方法分别设置x轴或y轴的刻度标签。
2.3实例:2019年中国电影票房排行榜
#导入模块
import matplotlib.pyplot as plt
import numpy as np
#设置中文
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams["axes.unicode_minus"] = False
labels = [" 哪吒之魔童降世 ", " 流浪地球 ", " 复仇者联盟 4: 终局之战 ",
" 疯狂的外星人 ", " 飞驰人生 ", " 烈火英雄 ", " 蜘蛛侠 : 英雄远征 ",
" 速度与激情 : 特别行动 ", " 扫毒 2 : 天地对决 ", " 大黄蜂 "," 惊奇队长 ",
" 比悲伤更悲伤的故事 ", " 哥斯拉 2: 怪兽之王 ", " 阿丽塔 : 战斗天使 ",
" 银河补习班 "]
bar_width = [48.57, 46.18, 42.05, 21.83, 17.03, 16.70, 14.01, 13.84,
12.85, 11.38, 10.25, 9.46, 9.27, 8.88, 8.64]
y_data = range(len(labels))
fig = plt.figure()
ax = fig.add_subplot(111)
ax.barh(y_data, bar_width, height=0.2, color='orange')
# 设置 x 轴和 y 轴的标签
ax.set_xlabel(" 总票房 ( 亿元 )")
ax.set_ylabel(" 电影名称 ")
# 设置 y 轴的刻度线位置、 刻度标签
ax.set_yticks(y_data)
ax.set_yticklabels(labels)
#展示图表
plt.show()
3.添加标题和图例
3.1 添加标题
添加标题利用title()函数,格式如下:
title(label,fontdict=None,loc='center',pad=None,**kwargs)
该函数常用参数含义如下:
(1)label :表示标题的文本。
(2)fontdict : 表示控制标题文本样式的字典。
(3)loc : 表示标题的对齐样式,包括"left'、'right'和'center'三种取值,默认取为'center’,即居中显示标题。
(4) pad :表示标题与图表顶部的距离,默认为None。
3.2添加图例
添加图例利用legend()函数,格式如下:
legend(handles, labels, loc, bbox_to_anchor, ncol, title, shadow,fancybox,*args,**kwargs)
3.3实例:支付宝账单报告(添加标题,图例)
#导入模块
import numpy as np
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.3,0.1,0.1,0.1,0.1,0.1]
fig = plt.figure( )
ax = fig.add_subplot(111)
# 绘制图表
ax.pie(money_scale,autopct='%.1f%%',shadow=True,
explode=dev_position,startangle=90)
#添加标题
plt.title('支付宝月账单报告')
plt.legend(kinds,loc='upper right',bbox_to_anchor=[1.3,1.1])
#图像展示
plt.show()
4.显示网格
4.1显示指定样式的网格
显示网格利用grid()函数来绘制,格式如下:
grid(b=None,which='major',axis='both', **kwargs)
该函数常用函数如下:
(1)b:表示是否显示网格。若提供其他关键字参数,则b参数设为True。
(2)which :表示显示网格的类型,支持major、minor、both 这3种类型,默认为major。
(3)axis :表示显示哪个方向的网格,该参数支持both、x和y这3个选项,默认为both。
(4)linewidth 或lw:表示网格线的宽度。
4.2实例:汽车速度与制动距离的关系(添加网格)
#导入模块
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)
area=np.linspace(20,300,20)
fig = plt.figure( )
ax = fig.add_subplot(111)
ax.scatter(x_speed,y_distance,s=area)
#设置x轴、y轴的标签、刻度标签
plt.xlabel('速度(km/h)')
plt.ylabel('制动距离(m)')
plt.xticks(x_speed)
#显示网格
plt.grid(b=True,linewidth=0.3)
# 展示图表
plt.show( )