Matplotlib作图(二)

文章介绍了如何使用Python的Matplotlib库创建3D图形和散点图,包括调用必要的库,处理数据,以及设置坐标轴标签。在3D图示例中,数据用于展示三个变量间的关系,而在散点图中,展示了如何简化数据以生成更清晰的图像。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、使用Matplotlib时需要调用的库

  1.在使用Matplotlib前,我们需用如下代码进行库的调用,否则不能正常使用Matplotlib进行作图:

import matplotlib.pyplot as plt

  这篇文章是对(一)的3D图和散点图的补充哈,对于3D图,我们需要额外调用一个库

from mpl_toolkits.mplot3d import Axes3D

  2.在使用Matplotlib时,可能会出现一些可以忽略的警告(warning),为了美观,你可以使用如下代码:

import warnings    # 不管是调用模型还是调整参数,都充满了满篇红色,有些可忽略,有些不可忽略
warnings.filterwarnings("ignore")

二、Matplotlib实战

  2.1 3D图

   比起二维平面图,3D图可以很好的反映三个变量之间存在的关系,当然了,我们使用的仍然是(一)中的数据集

x1 = data[['sales_region_code', 'first_cate_code', 'second_cate_code', 'ord_qty']]
x2 = pd.DataFrame(x1['sales_region_code'])
y2 = pd.DataFrame(x1['first_cate_code'])
z2 = pd.DataFrame(x1['ord_qty'])

# z2 = np.array([int(x) for x in z2])
# z2 = (x - z2.min()) / (z2.max() - z2.min())

x = x2.values
x = np.ravel(x).astype(int)
y = y2.values
y = np.ravel(y).astype(int)
z = z2.values
z = np.ravel(z).astype(int)
fig = plt.figure()

# ax = fig.add_subplot(111, projection='3d')
ax = Axes3D(fig)
ax.set_xlabel('sales_region_code')  # 横轴名称
ax.set_ylabel('first_cate_code')
ax.set_zlabel('ord_qty')
ax.scatter(x, y ,z)
plt.savefig(r'大类编码、地区区域和需求量的关系.png')
plt.show()

  其中,data为上述所使用的数据集的变量名,接下来是一些函数和参数的解释:

  • figsize=(10,6):x = np.ravel(x).astype(int):这是将x进行降维处理,并将降维后的数据转换成int型数据,目的是可以将其作为横坐标导入到fig中
  • ax = Axes3D(fig):创建一个3D子图
  • ax.scatter(x, y ,z):这里的画图方式是将每一个数据点作为散点画在三维图中
  • plt.show():展示图片,没有这一行代码的话,可能会出现虽然代码运行成功,但是无法显示图像的情况

  下面是结果图:
请添加图片描述

  2.2 散点图

  其实上面已经运用过散点图了,但是数据点过多,图像过于模糊,所以下面介绍一下数据点较少时的散点图:

x1 = data[['sales_region_code', 'first_cate_code', 'second_cate_code', 'ord_qty']]
# x2 = x1['sales_region_code'].head(50)
# y2 = x1['first_cate_code'].head(50)
z2 = x1['ord_qty'].head(50)
# z = np.array([int(x) for x in z2])
x = range(1,len(z2)+1)
plt.scatter(x, z2)
plt.show()

  这里只取了前五十行的数据
  下面是结果图:请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值