使用面向对象绘制图表并给图表添加辅助元素

1.0 设置坐标轴的标签、刻度范围和刻度标签

     1.1设置x,y轴的标签

具体代码如下:

 #导入模块

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

#创建画布

fig=plt.figure() 

#绘制绘图区域

ax=fig.add_subplot(111)

#准备数据

x=np.linspace(-np.pi,np.pi,256,endpoint=True)
y1,y2 =np.sin(x),np.cos(x)

#设置x轴y轴标签

ax.set_xlabel("x轴")
ax.set_ylabel("y轴")

#绘制图表

ax.plot(x,y1,x,y2)
plt.show()

代码运行结果如下:

   1.2设置刻度范围和刻度标签

     具体代码如下:

  #导入模块

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

#创建画布

fig=plt.figure() 

#绘制绘图区域

ax=fig.add_subplot(111)

#准备数据

x=np.linspace(-np.pi,np.pi,256,endpoint=True)
y1,y2 =np.sin(x),np.cos(x)

#设置x轴y轴标签

ax.set_xlabel("x轴")
ax.set_ylabel("y轴")

#设置x轴的刻度范围和刻度标签

ax.set_xlim(x.min()*1.5,x.max()*1.5)
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$'])

#绘制图表

ax.plot(x,y1,x,y2)
plt.show()

代码运行结果如下:

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

 具体代码如下:

   #导入模块

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

 #导入模块

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

#创建画布

fig=plt.figure() 

#绘制绘图区域

ax=fig.add_subplot(111)

#设置标签

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

#设置x轴y轴的标签

ax.set_xlabel('总票房(亿元)')
ax.set_ylabel('电影名称')

#设置y轴的刻度线位置、刻度标签

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

#绘制图表

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

 代码运行如下:

2.0  添加标题和图例

  2.1 添加标题和图例

  具体代码如下:

  #导入模块

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

#创建画布

fig=plt.figure() 

#绘制绘图区域

ax=fig.add_subplot(111)

#准备数据

x=np.linspace(-np.pi,np.pi,256,endpoint=True)
y1,y2 =np.sin(x),np.cos(x)

#设置x轴y轴标签

ax.set_xlabel("x轴")
ax.set_ylabel("y轴")

#设置x轴的刻度范围和刻度标签

ax.set_xlim(x.min()*1.5,x.max()*1.5)
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$'])

#添加标题

lines=ax.plot(x,y1,x,y2)
ax.legend(lines,['正弦','余弦'],shadow=True,fancybox=True)
ax.set_title('正弦曲线和余弦曲线')

#绘制图表

ax.plot(x,y1,x,y2)
plt.show()

 代码运行如下:

2.2 支付宝月账单报告(添加标题、图例)

 具体代码如下:

  #导入模块

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

#创建画布

fig=plt.figure() 

#绘制绘图区域

ax=fig.add_subplot(111)

#准备数据

money_scale=[800,100,1000,200,300,200,200,200]
dev_position=[0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1]##爆炸程度

#饼图外侧的说明文字

kinds=['购物','人情往来','餐饮美食','通信物流','生活日用','交通出行','休闲娱乐','其它']

#添加标题

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

#添加图例

ax.legend(kinds,loc='upper right',bbox_to_anchor=[1.7,1.1])

#绘制饼图

ax.pie(money_scale,labels=kinds,autopct='%.1f%%',shadow='true',explode=dev_position,startangle=90)
plt.show()

代码运行如下:

3.0 显示网格

3.1 显示指定样式的网格

 具体代码如下:

  #导入模块

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

#创建画布

fig=plt.figure() 

#绘制绘图区域

ax=fig.add_subplot(111)

#准备数据

x=np.linspace(-np.pi,np.pi,256,endpoint=True)
y1,y2 =np.sin(x),np.cos(x)

#设置x轴y轴标签

ax.set_xlabel("x轴")
ax.set_ylabel("y轴")

#设置x轴的刻度范围和刻度标签

ax.set_xlim(x.min()*1.5,x.max()*1.5)
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$'])

#添加标题

lines=ax.plot(x,y1,x,y2)
ax.legend(lines,['正弦','余弦'],shadow=True,fancybox=True)
ax.grid(b=True,axis='y',linewidth=0.3)
ax.set_title('正弦曲线和余弦曲线')

# 显示网格

ax.grid(b=True,axis='y',linewidth=0.3)

#绘制图表

ax.plot(x,y1,x,y2)
plt.show()

代码运行如下:

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

 具体代码如下:

  #导入模块

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

#创建画布

fig=plt.figure() 

#绘制绘图区域

ax=fig.add_subplot(111)

#准备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.9,70.8,83.1,96.4,110.7,126.0,142.2,159.4,177.6,196.8])

#设置x轴的标签、刻度标签

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

#显示网格

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

#绘制散点图

ax.scatter(x_speed,y_distance,s=50,alpha=0.9,linewidths=0.3
plt.show()

运行结果如下:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值