用python绘图

一、matplotlib.pyplo绘图相关的对象:

1、容器类:图(figure)、坐标系(axes)、坐标轴(axis)、刻度(tick)
2、基础类:线(line)、点(marker)、文本(text)、图例(legend)、网格(grid)、标题(title)

 

二、绘图的类型

1、线型图:plot()
2、直方图:hist()
3、条形图:bar()
4、饼图:pie()
5、散点图:scatter()
6、3D图:from mpl_toolkits.mplt3d import Axes3D()
7、动态交互图:pyecharts(属第三方库需要安装)

 1、线型图:plot()

(1)同一绘图区域绘制多图

2、直方图:hist()

3、条形图:bar()

4、饼图:pie()

案例:已知一个学生一天的活动时间分配为:学习6个小时、睡觉8小时、吃饭4小时、玩乐6小时,绘制该学生一天时间分配饼状图

 import matplotlib.pyplot as plt
plt.rcParams['font.family'] = 'kaiti'              #设置字体
plt.rcParams['font.size'] = 18                     #设置字体大小
label = ['学习','睡觉','吃饭','玩乐']                #活动标签
hour = [6,8,4,6]                                  #时间分配
color = ['c','m','r','y']                          #各部分颜色
plt.pie(hour, labels=label, colors=color, shadow=True,explode=(0,0.1,0,0,), autopct='%.1f%%', labeldistance=1.2)
plt.title('一天时间分配饼状图')
plt.savefig('../R&Q_pic/test7.jpg',dpi = 600)
plt.show()

import matplotlib.pyplot as plt
plt.rcParams['font.family'] = 'kaiti'              #设置字体
plt.rcParams['font.size'] = 18                     #设置字体大小
label = ['学习','睡觉','吃饭','玩乐']                #活动标签
hour = [6,8,4,6]                                  #时间分配
color = ['c','m','r','y']                          #各部分颜色
plt.pie(hour, labels=label, colors=color, shadow=True,explode=(0,0.1,0,0,), autopct='%.1f%%', labeldistance=1.2)
plt.title('一天时间分配饼状图')
plt.savefig('../R&Q_pic/test7.jpg',dpi = 600)
plt.show()

5、散点图:scatter()

6、3D图:绘制z=exp(-(x^2+y^2)/2)的3D图形

from mpl_toolkits.mplot3d import Axes3D             #导入绘制3D模块,此模块包含在matplotlib库中
import matplotlib.pyplot as plt
import numpy as np

plt.rcParams['font.family'] = 'Kaiti'               #字体为楷体
plt.rcParams['font.size'] = 18                      #字体大小为18

fig = plt.figure(num = '3D绘图',figsize = (12,6))         #创建图形,标题为3D绘图,大小为12*6英寸
ax = Axes3D(fig,auto_add_to_figure = False)                                    #创建一个3D坐标系,里面存放手动添加指定的fig图形,而不自动添加图形
fig.add_axes(ax)                                    #将3D坐标系添加到图形中
x = np.linspace(-3,3,100)                           #创建网格的范围(从-3到3)和网格点数量(100j表示100个等距的点)
y = np.linspace(-3,3,100)
X,Y = np.meshgrid(x,y)                              #生成网格
Z = np.exp(-(X**2+Y**2)/2)

surf = ax.plot_surface(X,Y,Z,rstride = 1,cstride = 1,cmap = 'rainbow')
fig.colorbar(surf,shrink=0.5,aspect=5)
ax.set_zlim(-0.1,1)
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')

plt.title('$z=exp(-(x^2+y^2)/2)$的三维图形')
plt.savefig('../R&Q_pic/test8.jpg',dpi = 600)
plt.show()

7、 动态交互图:pyecharts

from pyecharts.charts import Bar
from pyecharts import options as opts
from pyecharts.globals import ThemeType

num_2023 = [32,6,10,26,3,1]
num_2024 = [26,4,12,26,2,1]
lab = ['维吾尔族','藏族','蒙古族','彝族','水族','哈尼族']

bar =(Bar(init_opts=opts.InitOpts(theme=ThemeType.ROMA))
    .add_xaxis(xaxis_data=lab)
    .add_yaxis('2023年',num_2023)
    .add_yaxis('2024年',num_2024,itemstyle_opts=opts.ItemStyleOpts(color='blue'))
    .set_global_opts(title_opts=opts.TitleOpts(title='通信与信息工程学院',title_link='https://www.stiei.edu.cn',subtitle='少数民族学生')))
bar.render('../R&Q_pic/test10.html')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值