python数据可视化:图表辅助元素的定制

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( )

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值