1. matplotlib的使用
使用matplotlib绘制图表
书上的示例:
第一步和第二步一定是导入模块 准备数据
课后习题
这句话是错的
2. 数据可视化的意义:
课后习题:
数据可视化是一个抽象的过程。这句话是对的
3. 常用图表的定义和作用(折线图、柱状图、饼图)
课后题
应该为折线图
这句话是错的
反应两个变量之间的关系的是散点图
以上1到3考的是判断、选择。后续应该都是填空、操作。
4. 绘制多折线图、两组柱形的柱状图、饼图、圆环图。
绘制多折现图
两组柱形的柱状图
使用pyplot的bar()函数绘制柱形图
饼图
使用pyplot的pie()函数可以快速绘制饼图或者圆环图
5.识别常用颜色:红、绿、蓝、黄、紫、青、黑、白。
具体应用在最后的习题里
6.设置线的样式,如实线、长虚线、短虚线、点划线等。
7.设置网格线
8.设置标题
9.设置x y 轴的刻度标签
10.设置楔形图宽度、半径、保留n位小数
楔形图宽度 wedgeprops = {‘width’:宽度}
保留n位小数 autopct='%1.nf%%'
半径radius =
作业一、
二
作业11
绘制最低最高气温折线图,数据如下:
最高气温: [32, 33, 34, 34, 33, 31, 30, 29, 30, 29, 26, 23, 21, 25, 31]
最低气温: [19, 19, 20, 22, 22, 21, 22, 16, 18, 18, 17, 14, 15, 16, 16]
说明:
(1)最高气温使用紫色长虚线,最低气温使用黑色短虚线。
(2)使用水平、垂直两个方向的网格线。
(3)设置x轴、y轴的标签和图表标题。
代码:
import matplotlib.pyplot as plt
# 最高气温和最低气温的数据
high_temps = [32, 33, 34, 34, 33, 31, 30, 29, 30, 29, 26, 23, 21, 25, 31]
low_temps = [19, 19, 20, 22, 22, 21, 22, 16, 18, 18, 17, 14, 15, 16, 16]
# 设置折线图的样式
plt.plot(high_temps, linestyle='--', color='purple') # 最高气温折线
plt.plot(low_temps, linestyle=':', color='black') # 最低气温折线
# 设置网格线
plt.grid(True, which='both') # 显示水平和垂直网格线
# 设置x轴和y轴的标签
plt.xlabel('Days') # x轴标签
plt.ylabel('Temperature (°C)') # y轴标签
# 设置图表标题
plt.title('Minimum and Maximum Temperature over 15 days')
# 显示图例
plt.legend(['Max Temperature', 'Min Temperature'])
# 自动调整x轴和y轴的刻度范围
plt.tight_layout()
# 显示图表
plt.show()
图:
作业12
绘制甲、乙两位学生五门课程成绩的对比柱形图,数据如下:学生语文数学英语物理化学
甲7493848179
乙8883977472
说明:
(1)甲同学的成绩使用红色矩形条表示,乙同学的成绩使用蓝色矩形条表示。
(2)水平轴的标签使用课程名称标记,如“语文”“数学”等。
代码:
import matplotlib.pyplot as plt
# 学生成绩数据
subjects = ['语文', '数学', '英语', '物理', '化学']
score_a = [74, 93, 84, 81, 79]
score_b = [88, 83, 97, 74, 72]
# 设置水平轴的标签
plt.xticks(range(len(subjects)), subjects)
# 设置柱形图的位置和颜色
plt.bar(range(len(subjects)), score_a, width=0.4, color='red', label='甲同学')
plt.bar(range(len(subjects)), score_b, width=0.4, color='blue', label='乙同学')
# 添加图例
plt.legend()
# 设置图表标题
plt.title('甲、乙两位学生五门课程成绩对比')
# 调整显示的布局
plt.tight_layout()
# 显示图表
plt.show()
图:
作业13
绘制某学生2024年6月消费情况的圆环图,数据如下:
支出类别伙食零食学习通讯服饰交通娱乐其他
金额(元)93143021068413148100310
说明:
(1)伙食、服饰使用红色表示,零食、交通使用绿色表示,学习、娱乐使用蓝色表示,通讯、其他使用黄色表示。
(2)绘制标题“6月消费情况”。
(3)楔形宽度为0.75,半径为1.3,数值保留1位小数。
代码:
import matplotlib.pyplot as plt
import numpy as np
# 数据列表,包含支出类别和对应的金额
categories = ['伙食', '零食', '学习', '通讯', '服饰', '交通', '娱乐', '其他']
values = [931, 430, 210, 68, 413, 148, 100, 310]
colors = ['red', 'green', 'blue', 'yellow', 'red', 'green', 'blue', 'yellow']
explode = [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1] # 控制楔形的突出程度
# 创建一个圆环图
plt.figure(figsize=(8, 8))
plt.pie(values, labels=categories, colors=colors, autopct='%1.1f%%', explode=explode, shadow=True, radius=1.3)
plt.title('6月消费情况')
plt.axis('equal') # 保持饼状图为圆形
plt.show()
图:
作业14
绘制甲、乙两国(地区)在各类发电量方面的对比柱形图,数据如下:
国家(地区)水电火电核电风电太阳能其他
甲17493284214374
乙8828397347546
说明:
(1)甲国(地区)的发电量使用红色矩形条表示,乙国(地区)的发电量使用蓝色矩形条表示。
(2)水平轴的标签使用发电类别标记,如“水电”“火电”等。
代码:
import matplotlib.pyplot as plt
import numpy as np
# 数据
categories = ['水电', '火电', '核电', '风电', '太阳能', '其他']
generation_jia = [174, 93, 284, 21, 43, 74]
generation_yi = [88, 283, 97, 34, 75, 46]
x = np.arange(len(categories)) # 生成类别数量的序列
width = 0.4 # 柱形宽度
# 绘图
plt.figure(figsize=(10, 6))
# 绘制甲国的发电量柱形图(红色)
plt.bar(x - width/2, generation_jia, width=width, color='red', label='甲国')
# 绘制乙国的发电量柱形图(蓝色)
plt.bar(x + width/2, generation_yi, width=width, color='blue', label='乙国')
# 设置轴标签和标题
plt.xlabel('发电类别')
plt.ylabel('发电量')
plt.title('甲乙两国在各类发电量方面的对比')
# 设置x轴刻度和标签
plt.xticks(x, categories)
# 显示图例
plt.legend()
# 显示图形
plt.tight_layout()
plt.show()
图:
作业15
绘制该学校2023级新生的来源地区的圆环图,数据如下:
来源地区东北华北华东华中华南西南西北
人数5423341892304830810410
说明:
(1)东北、华南地区生源人数使用红色表示,华北、西南地区生源人数使用绿色表示,华东、西北地区生源人数使用蓝色表示,华中地区生源人数使用黄色表示。
(2)绘制标题“2023级新生来源地区”。
(3)楔形宽度为0.8,半径为1.3,数值保留1位小数。
代码:
import matplotlib.pyplot as plt
# 数据
labels = ['东北', '华北', '华东', '华中', '华南', '西南', '西北']
sizes = [542, 334, 189, 2304, 830, 810, 410]
colors = ['red', 'green', 'blue', 'yellow', 'red', 'green', 'blue'] # 根据要求设置颜色
explode = (0, 0, 0, 0, 0, 0, 0) # 不设置爆炸效果
# 绘图
plt.figure(figsize=(8, 6))
plt.pie(sizes, explode=explode, labels=labels, colors=colors,
autopct='%1.1f%%', startangle=140, wedgeprops={'width': 0.8, 'linewidth': 1.3})
# 设置标题
plt.title('2023级新生来源地区')
# 显示图形
plt.axis('equal') # 保证圆环图比例相等
plt.show()
图:
作业12和作业13 不同答案
作业12
绘制甲、乙两位学生五门课程成绩的对比柱形图,数据如下:
学生语文数学英语物理化学
甲7493848179
乙8883977472
说明:
(1)甲同学的成绩使用红色矩形条表示,乙同学的成绩使用蓝色矩形条表示。
(2)水平轴的标签使用课程名称标记,如“语文”“数学”等。
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
courses = ['语文', '数学', '英语', '物理', '化学']
scores_a = [74, 93, 84, 81, 79]
scores_b = [88, 83, 97, 74, 72]
x = range(len(courses))
plt.bar(x, scores_a, width=0.4, color='red', label='甲')
plt.bar([i + 0.4 for i in x], scores_b, width=0.4, color='blue', label='乙')
plt.xticks(x, courses, rotation=45)
plt.xlabel('课程')
plt.ylabel('成绩')
plt.title('甲、乙学生成绩对比')
plt.legend()
plt.show()
作业13
绘制某学生2024年6月消费情况的圆环图,数据如下:
支出类别伙食零食学习通讯服饰交通娱乐其他
金额(元)93143021068413148100310
说明:
(1)伙食、服饰使用红色表示,零食、交通使用绿色表示,学习、娱乐使用蓝色表示,通讯、其他使用黄色表示。
(2)绘制标题“6月消费情况”。
(3)楔形宽度为0.75,半径为1.3,数值保留1位小数。
import matplotlib.pyplot as plt
categories = ['伙食', '零食', '学习', '通讯', '服饰', '交通', '娱乐', '其他']
amounts = [931, 430, 210, 68, 413, 148, 100, 310]
colors = ['red', 'green', 'blue', 'yellow','red', 'green', 'blue', 'yellow'] # 修正颜色对应
plt.pie(amounts, labels=categories, colors=colors, wedgeprops={'width': 0.75, 'radius': 1.3}, autopct='%.1f%%')
plt.title('6 月消费情况')
plt.axis('equal')
plt.show()