图表辅助元素的定制(坐标轴的标签、刻度范围和刻度标签,标题和图例,显示网格)

目录

认识图表常用的辅助元素

实例1:2019年中国电影票房排行榜(坐标轴的标签、刻度范围和刻度标签)

实例2:支付宝月账单报告(添加标题和图例)

实例3:汽车速度与制动距离的关系(添加网格)


认识图表常用的辅助元素

用一个图演示哈

导入模块并设置中文

import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

创建代表画布的Figure类的对象fig

fig = plt.figure()

在画布fig上添加坐标系风格的绘图区域ax

ax = fig.add_subplot(111)

设计图表

x = np.linspace(-np.pi, np.pi, 256, endpoint=True)  #准备数据,在-Π与Π之间,以均匀步长生成256个点
y1, y2 = np.sin(x), np.cos(x)

使用legend()函数添加图例

lines = ax.plot(x, y1, x, y2)
ax.legend(lines,['正弦','余弦'])

使用xlabel()函数设置 x 轴的标签

ax.set_xlabel("x轴")

使用ylabel()函数设置 y 轴的标签,fontdict表示控制标签文本样式的字典

ax.set_ylabel("y轴",
             labelpad = 25, # 表示标签与坐标轴边框(包括刻度和刻度标签)的距离
             fontdict = {'color':'orange', # 标签颜色
                         'fontsize':'15', # 标签文本大小
                         'rotation':'45'}) # 字体旋转角度

使用xlim()函数设置 x 轴的刻度范围

ax.set_xlim(left = x.min() * 1.5, right = x.max()  * 1.5)  
# 设置x轴左位数和右位数(其实就是最小值和最大值,直接left=?或者xmin=?也可以,如left=-6/xmin=-6)

使用xticks()函数设置 x 轴的刻度标签

ax.set_xticks([-np.pi,    -np.pi/2,    0,      np.pi/2,    np.pi],
              [r'$-\pi$', r'$-\pi/2$', r'$0$', r'$\pi/2$', r'$\pi$'])#在字符串前加r,意味着该字符串将被视为原始字符串,所有转义字符都被忽略

使用yticks()函数设置 y 轴的刻度标签,这里设为分数,用\frac{}{}

ax.set_yticks([-1.00, -0.75, -0.50, -0.25, 0.00, 0.25, 0.50, 0.75, 1.00],
              [r'$-1$', r'$-\frac{3}{4}$', r'$-\frac{1}{2}$', r'$-\frac{1}{4}$',
              r'$0$',
              r'$\frac{1}{4}$', r'$\frac{1}{2}$', r'$\frac{3}{4}$', r'$1$'
              ]) # 编写数学表达式(更多参考matplotlib官网)

使用title()函数添加标题

ax.set_title("正弦曲线和余弦曲线")

展示图表

plt.show()

运行结果如下:

现在做实例

实例1: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]

创建画布并添加绘图区域

fig = plt.figure()
ax = fig.add_subplot(111
y_data = range(len(labels))

制作水平条图

ax.barh(y_data,bar_width,height=0.2,color='orange')

使用 xlabel()ylabel() 设置 x 轴和 y 轴的标签

ax.set_xlabel(" 总票房 ( 亿元 )",
              fontdict = {'color':'green', # 标签颜色
                         'fontsize':'15'}) # 标签文本大小
ax.set_ylabel(" 电影名称 ",
             fontdict = {'color':'green',
                         'fontsize':'15'})

设置 y 轴的刻度线位置、 刻度标签(两个独立方法

ax.set_yticks(y_data)
ax.set_yticklabels(labels)

使用title()函数添加标题

ax.set_title("2019年中国电影票房排行榜Top15的条形图")

展示图表

plt.show()

运行结果如下:

实例2:支付宝月账单报告(添加标题和图例)(饼图)

 导入模块并设置中文

import matplotlib.pyplot as plt
import numpy as np

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]

创建画布并添加绘画区域

fig = plt.figure( )                
ax = fig.add_subplot(111)

爆炸程度

dev_position=[0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1]

绘制图表

ax.pie(money_scale,autopct='%3.1f%%',shadow=True,
       explode=dev_position,startangle=90)

使用title()函数添加标题

ax.set_title('支付宝月账单报告')

使用legend()函数添加图例

ax.legend(kinds,
          loc='upper right', # 用于粗略调整图例在整个绘图区域上的位置,在这用的是位置字符串,也可以用位置编码,详见下图
          bbox_to_anchor=[1.3,1.1]) # 用于精细调整图例在整个绘图区域上的位置:数值1越大越偏右,数值2越大越偏上

 

展示图表

plt.show() 

运行结果如下:

实例3:汽车速度与制动距离的关系(添加网格)(气泡图)

  导入模块并设置中文

import matplotlib.pyplot as plt
import numpy as np

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

生成一个等距递增数列

area=np.linspace(20,300,20)

创建画布并添加绘画区域

fig = plt.figure( )                
ax = fig.add_subplot(111)

绘制图表

ax.scatter(x_speed,y_distance,s=area,alpha=0.9,linewidths=0.3)

使用 xlabel()ylabel() 设置 x 轴和 y 轴的标签

ax.set_xlabel('速度(km/h)')
ax.set_ylabel('制动距离(m)')

调整坐标轴刻度(令每个点刚好在横轴的刻度上

ax.set_xticks(x_speed)

使用title()函数添加标题

ax.set_title('汽车速度与制动距离关系的散点图--添加网格')

显示网格 

ax.grid(b=True,linewidth=0.3) 

展示图表

plt.show()

运行结果如下:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值