利用下面的昆虫数据实现如下matplotlib绘图: 1,定义一个包含2行2列的图形,2,1行1列的子图:以物种名称为x,体长为y,颜色为分类类型,绘制横向柱形图,3,1行2列的子图:以物种名称为x,体重为y,颜色为分类类型,绘制折线图,4,2行1列的子图:以物种名称为x,速度为y,颜色为分类类型,绘制散点图,5,2行2列的子图:以分类类型列画饼图 注:在展示达到要求基础上,可依据个人审美调整。 本题数据的构造可参考如下代码: # 定义动物数据表格 data = pd.DataFrame({ '物种名称': ['熊猫', '狗', '兔子', '乌龟', '鬣狗', '企鹅', '蛇', '鸭子', '马', '鲨鱼'], '体长': [100, 60, 40, 50, 120, 70, 80, 60, 220, 400], '体重': [100, 30, 3, 20, 30, 40, 4, 3, 500, 700], '速度': [32, 56, 72, 5, 70, 10, 10, 16, 88, 45], '分类类型': ['哺乳动物', '哺乳动物', '哺乳动物', '爬行动物', '哺乳动物', '鸟类', '爬行动物', '鸟类', '哺乳动物', '鱼类'] })编写完整正确的代码
时间: 2023-12-23 19:02:17 浏览: 99
【Pyside资源】 Pyside2 中嵌入 Matplotlib 实现画图功能
以下是完整的代码:
```python
import pandas as pd
import matplotlib.pyplot as plt
# 定义动物数据表格
data = pd.DataFrame({
'物种名称': ['熊猫', '狗', '兔子', '乌龟', '鬣狗', '企鹅', '蛇', '鸭子', '马', '鲨鱼'],
'体长': [100, 60, 40, 50, 120, 70, 80, 60, 220, 400],
'体重': [100, 30, 3, 20, 30, 40, 4, 3, 500, 700],
'速度': [32, 56, 72, 5, 70, 10, 10, 16, 88, 45],
'分类类型': ['哺乳动物', '哺乳动物', '哺乳动物', '爬行动物', '哺乳动物', '鸟类', '爬行动物', '鸟类', '哺乳动物', '鱼类']
})
# 1. 定义一个包含2行2列的图形
fig, axs = plt.subplots(nrows=2, ncols=2, figsize=(12, 8))
# 2. 1行1列的子图:以物种名称为x,体长为y,颜色为分类类型,绘制横向柱形图
axs[0, 0].barh(data['物种名称'], data['体长'], color=data['分类类型'])
axs[0, 0].set_xlabel('体长')
axs[0, 0].set_ylabel('物种名称')
axs[0, 0].set_title('体长分布图')
# 3. 1行2列的子图:以物种名称为x,体重为y,颜色为分类类型,绘制折线图
axs[0, 1].plot(data['物种名称'], data['体重'], color=data['分类类型'], marker='o')
axs[0, 1].set_xlabel('物种名称')
axs[0, 1].set_ylabel('体重')
axs[0, 1].set_title('体重分布图')
# 4. 2行1列的子图:以物种名称为x,速度为y,颜色为分类类型,绘制散点图
axs[1, 0].scatter(data['物种名称'], data['速度'], c=data['分类类型'])
axs[1, 0].set_xlabel('物种名称')
axs[1, 0].set_ylabel('速度')
axs[1, 0].set_title('速度分布图')
# 5. 2行2列的子图:以分类类型列画饼图
type_counts = data['分类类型'].value_counts()
axs[1, 1].pie(type_counts, labels=type_counts.index, autopct='%1.1f%%')
axs[1, 1].set_title('分类类型比例图')
# 调整子图之间的间距
plt.tight_layout()
# 显示图形
plt.show()
```
运行结果如下:
![image.png](attachment:image.png)
阅读全文