파이썬 데이터 시각화 입문 6 - 연습문제

힘센캥거루
2025년 10월 8일(수정됨)
2
12

这次是数据可视化练习题。

用旧资料会不会觉得无趣呢?

试试使用新数据吧。

1. 文件及问题

文件是从公共数据门户下载的年度犯罪发生次数和检举次数统计

按照以下条件绘制图表。

  • 可视化黑客攻击(资料泄露)的发生及检举次数

  • 设置标题、x轴标签、y轴标签、图例

  • 改变线的样式,自由修改

  • 其他样式随意

파이썬 데이터 시각화 입문 6 - 연습문제-1

2. 问题解答

首先复制粘贴上次文章的开头。在这里仅需更改文件路径

import pandas as pd

# 模块调用及设置韩文字体
import matplotlib.pyplot as plt
import matplotlib

# 在MacOS上设置字体
# matplotlib.rcParams["font.family"] = "AppleGothic"

# 在Windows上设置字体
matplotlib.rcParams["font.family"] = "Malgun Gothic"

# 设置字体大小
matplotlib.rcParams["font.size"] = 13

# 解决负号显示问题
plt.rcParams['axes.unicode_minus'] = False

crime = pd.read_excel("./crime_statistics.xlsx")
crime.head(3)

查看数据,可以看到年份根据分类重复了两次

파이썬 데이터 시각화 입문 6 - 연습문제-2

通过unique()去除重复的年份

然后使用loc和条件语句提取黑客攻击的发生次数和检举次数,并绘制图表。

x = crime.loc[:,"연도"].unique()
y1 = crime.loc[crime.구분=="발생건수","해킹(자료유출)"]
y2 = crime.loc[crime.구분=="검거건수","해킹(자료유출)"]
plt.plot(x,y1)
plt.plot(x,y2)
파이썬 데이터 시각화 입문 6 - 연습문제-3

给图表添加图例和标题

x = crime.loc[:,"연도"].unique()
y1 = crime.loc[crime.구분=="발생건수","해킹(자료유출)"]
y2 = crime.loc[crime.구분=="검거건수","해킹(자료유출)"]
plt.plot(x,y1,label="발생건수") # <-- 추가
plt.plot(x,y2,label="검거건수") # <-- 추가
plt.legend() # <-- 추가
plt.title("해킹(자료유출) 발생 및 검거 건수") # <-- 추가
파이썬 데이터 시각화 입문 6 - 연습문제-4

然后设置轴名称

x = crime.loc[:,"연도"].unique()
y1 = crime.loc[crime.구분=="발생건수","해킹(자료유출)"]
y2 = crime.loc[crime.구분=="검거건수","해킹(자료유출)"]
plt.plot(x,y1,label="발생건수")
plt.plot(x,y2,label="검거건수")
plt.legend()
plt.xlabel("연도") # <-- 추가
plt.ylabel("건수") # <-- 추가
plt.title("해킹(자료유출) 발생 및 검거 건수")
파이썬 데이터 시각화 입문 6 - 연습문제-5

最后指定线样式添加网格

x = crime.loc[:,"연도"].unique()
y1 = crime.loc[crime.구분=="발생건수","해킹(자료유출)"]
y2 = crime.loc[crime.구분=="검거건수","해킹(자료유출)"]
plt.plot(x,y1,"^--",label="발생건수") # <-- 추가
plt.plot(x,y2,"o-",label="검거건수") # <-- 추가
plt.legend()
plt.xlabel("연도")
plt.ylabel("건수")
plt.title("해킹(자료유출) 발생 및 검거 건수")
plt.grid() # <-- 추가
파이썬 데이터 시각화 입문 6 - 연습문제-6

3. 结束语

在下一篇文章中,我将讨论Matplotlib中如何一次绘制多个图表的方法。

希望对练习数据可视化的人有所帮助。

관련 글

从零构建中学习 LLM 第7章读书心得与挑战回顾
从零构建中学习 LLM 第7章读书心得与挑战回顾
第7章的内容是让模型遵循指令进行微调的过程。也就是让它针对某个问题给出我们期望的回答。果然,最需要的还是数据。1. 指令微调步骤这里的核心是准备好问答数据集,用作输入-输出对来进行训练。这就叫做提示(prompt)风格。其他部分就像之前的流程一样,对内容进行分词(tokenize)、训练和评估,过程...
从零开始构建中学习 LLM 第 6 章读后感
从零开始构建中学习 LLM 第 6 章读后感
第 6 章是为分类进行微调。作为例子给出的任务是构建垃圾邮件分类器。垃圾邮件分类器需要判断一封邮件是不是垃圾邮件,因此输出结果要是类似 0、1 这样的值。1. 微调的顺序微调的过程和训练模型的过程很相似。准备数据集,加载权重值,然后进行训练和评估。稍微不同的一点是,会有一个把输出层映射到 0(非垃圾...
从零开始构建中学习 LLM 第5章读书后记
从零开始构建中学习 LLM 第5章读书后记
今天是12月14日。其实挑战期已经过去整整两周了,但也不能因此就放弃写后记。像这样留下的 TIL(Today I Learned),以后都会变成自己的血和肉。这次打算比起代码本身,更专注在“意义”上来写一写。1. 模型的损失计算这一部分讲的是,在构建好 GPT 模型之后,用什么方式来计算损失。GPT...
从零开始动手实现 LLM 第4章读书心得
从零开始动手实现 LLM 第4章读书心得
今天是11月26日,如果每天读一章并看完的话,这次挑战就算成功。在老大和老二的各种干扰下,不知道能不能做到。1. Dummy Transformer在实现 GPT 模型的过程中,看到是从 PyTorch 里拿来一个 Transformer 的 dummy 模块用的。一查才发现,在 PyTorch 的...
通过从头构建学习的LLM第3章读后感
通过从头构建学习的LLM第3章读后感
我在MacBook上泼了一大杯水后,崩溃了,浪费了大约3-4天。现在回想起来,反正MacBook已经坏了,应该想着送修,干点别的事情。无论如何,虽然有点晚了,但我觉得必须坚持到底,所以留下了第3章的读后感。1. 注意力机制第3章...
通过从头开始制作学习 LLM 第二章读书笔记
通过从头开始制作学习 LLM 第二章读书笔记
已经是参加挑战的第二周。昨天还没有完成第二章,趁着来参加 1 泊 2 日的研修,熬到 12 点才勉强赶上进度。1. 内容第二章的内容以单词的分词、编码、解码、嵌入向量为中心。尽管之前试过制作 One-hot 编码器,对于其他部分比较熟悉,但是嵌入向量本身的内容是新的。

댓글을 불러오는 중...