python数据读取与可视化(1)——CSV格式

本文介绍了CSV文件的读取、处理和可视化方法。通过Python的csv库读取数据,利用matplotlib进行数据可视化,并解决中文字体显示问题。在数据可视化中,通过plt.text()对每个数据点进行标注,提升图表的可读性。此外,文章还分享了如何在matplotlib中调整字体以正确显示中文。
摘要由CSDN通过智能技术生成

CSV格式文件读取与可视化

一 CSV

 CSV文件以纯文本的形式储存数字和字母,各个数据之间一般用逗号作为分隔符。是一种通用的,相对简单的文件格式,被广泛使用。常用于在不同的程序之间传递表格数据

举个🌰
年,制造商,型号
1997,Ford,E350
1999,Chevy,"Venture "“Extended Edition”
1999,Chevy,"Venture "“Extended Edition”

二 如何得到CSV

 法一:用记事本按照csv的格式书写,保存为csv文件
 法二:用Excel书写,保存时改为csv
在这里插入图片描述

三 CSV文件的处理

1 导入文件

 将文件放置到当前项目所在的文件夹中
在这里插入图片描述

2 读取数据

#导入csv库
import csv

filename = "economy development.csv"
with open(filename) as f:
    reader = csv.reader(f) #使用reader类
    rows = next(reader)
    #调用next方法,rows储存每一列的第一个
    print(rows)# 

result:

['地区', '经济总量', '增速']

枚举rows中的元素

for index, column_header in enumerate(rows):
    print(index, column_header)

result:

0 地区
1 经济总量
2 增速

建立两个空列表储存row[0] and row[1]中的地区和经济总量

 enconomic = []
    place = []
    for row in reader:
        enconomic.append(row[1])
        place.append(row[0])

在这里插入图片描述

3 数据的可视化

 数据可视化,当然是使用matplotlib
详解传送门

一些小问题的处理

由于matplotlib不含中文字体,所以中文字体会被显示为[]在这里插入图片描述
所以我们要在文件中引入中文字体

# 查看系统中的字体
from matplotlib import font_manager
a = sorted([f.name for f in font_manager.fontManager.ttflist])
for i in a:
    print(i)

下面是我的一些字体
在这里插入图片描述
再在脚本前面加上这个即可

plt.rcParams['font.sans-serif'] = ['Songti SC']
# Songti SC 是字体名
plt.rcParams['axes.unicode_minus'] = False

完整代码如下

import matplotlib.pyplot as plt
import csv

plt.rcParams['font.sans-serif'] = ['Songti SC']
plt.rcParams['axes.unicode_minus'] = False

filename = "economy development.csv"
with open(filename) as f:
    reader = csv.reader(f)
    enconomic = []
    place = []
    for row in reader:
        if row[1] != "经济总量":
 # 开头如果是英文好像就没有这个困惑,不必进行判断
            e = float(row[1])
            enconomic.append(e)
        if row[0] != "地区":
            place.append(row[0])
fig = plt.figure(dpi=120, figsize=(8, 6))
plt.plot(place, enconomic)
plt.xlabel("地区", fontsize=20)
plt.ylabel("2020全年GDP/亿", fontsize=20)
plt.title("2020前11省市GDP")
plt.ylim(-10,120000)
plt.show()

结果如下
在这里插入图片描述
然而这种方法还是不够直观

一点优化


通过调用plt.text( )对每一点进行标注
在plot( )中的marker

plt.plot(place, enconomic, label='经济发展', linewidth=3, color='black', marker='o',
         markerfacecolor='red', markersize=12)
         # 对点用圆点进行标注
for a, b in zip(place, enconomic):
    plt.text(a, b, b, ha='center', va='bottom', fontsize=14)
    #text方法用enconomic中的值

效果如下:
在这里插入图片描述
欢迎大家点赞三连


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值