图表辅助元素的定制

如何设置坐标轴的标签、刻度范围和刻度标签?

坐标轴的标签:matplotlib中可以直接使用pyplot模块的xlabel()函数设置x轴的标签,用ylabel()函数设置y轴标签。

刻度范围:使用pyplot()模块的xlim()和ylim()函数分别可以设置或获取x轴和y轴的刻度范围。

刻度范围。

刻度标签:使用pyplot()模块的xticks()和yticks()函数分别可以设置或获取x轴和y轴的刻度线位置和刻度标签。

实例1:2019年中国电影票房排行榜

       根据表的数据,将“电影名称”一列的数据作为 y 轴的刻度标签,将“总票房(亿元)”一列的数据作为刻度标签对应的数值,使用 barh() 绘制 2019 年中国电影票房排行榜 Top15 的条形图,并为条形图的坐标轴添加标签和刻度标签。

示例代码:

#导入模块
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='red')
# 设置 x 轴和 y 轴的标签
ax.set_xlabel(" 总票房 ( 亿元 )")
ax.set_ylabel(" 电影名称 ")
# 设置 y 轴的刻度线位置、 刻度标签
ax.set_yticks(y_data)
ax.set_yticklabels(labels)
#展示图表
plt.show()

运行如下:

实例2:支付宝月账单报告

如何添加标题和图例?

添加标题利用title()函数:

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

添加图例利用legend()函数:

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

示例代码:

#导入模块
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,300/3000,
200/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]
#创建画布并添加绘画区域:
fig = plt.figure( )                #创建代表画布的Figure类的对象fig
ax = fig.add_subplot(111)          #在画布fig上添加坐标系风格的绘画区域ax
 
# 绘制图表
ax.pie(money_scale,autopct='%.1f%%',shadow=True,
       explode=dev_position,startangle=90) 
#添加标题
ax.set_title('支付宝月账单报告')      
ax.legend(kinds,loc='upper right',bbox_to_anchor=[1.3,1.1])
#图像展示  
plt.show()                 

运行如下:

实例3:汽车速度与制动距离的关系

如何添加网格?

显示网格利用grid()函数来绘制:

 grid(b=None,which='major',axis='both', **kwargs)
#导入模块
import numpy as np
import matplotlib.pyplot as plt
#设置中文
plt.rcParams['font.sans-serif'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False
# 准备 x 轴和 y 轴的数据
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])
 
 # 绘制气泡图
area=np.linspace(20,300,20)         
#创建画布并添加绘画区域:(面向对象)
fig = plt.figure( )                
ax = fig.add_subplot(111)         
#绘制图表
ax.scatter(x_speed,y_distance,s=area)
 
#设置x轴、y轴的标签、刻度标签
ax.set_xlabel('速度(km/h)')
ax.set_ylabel('制动距离(m)')
 
ax.set_xticks(x_speed)
#显示网格              
ax.grid(b=True,linewidth=0.5)  
# 展示图表
plt.show()

运行如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值