📜  在Python可视化来自 CSV 文件的数据

📅  最后修改于: 2022-05-13 01:54:48.794000             🧑  作者: Mango

在Python可视化来自 CSV 文件的数据

CSV 代表“逗号分隔值”。这意味着 CSV 文件中的数据(值)由分隔符(即逗号)分隔。 CSV 文件中的数据以表格格式存储,扩展名为 .csv。通常,CSV 文件与 Google 电子表格或 Microsoft Excel 工作表一起使用。 CSV 文件包含许多记录,数据分布在行和列之间。在本文中,我们将在Python可视化来自 CSV 文件的数据。

要提取 CSV 文件中的数据,必须在我们的程序中导入 CSV 模块,如下所示:

import csv

with open('file.csv') as File:  
    Line_reader = csv.reader(File) 

这里使用 csv.reader( )函数来读取导入 CSV 库后的程序。

示例 1:通过条形图可视化不同人员列。

以下 CSV 文件包含保存为“biostats.csv”的不同人名、性别和年龄:



方案的方法:

  1. 导入所需的库、用于可视化的 matplotlib 库和用于读取 CSV 数据的 CSV 库。
  2. 使用 open( )函数从 CSV 库中以 'r' 模式(只读)打开文件,并使用 csv.reader( )函数读取文件。
  3. 使用 for 循环读取文件中的每一行。
  4. 将所需的列附加到列表中。
  5. 读取整个 CSV 文件后,将所需数据绘制为 X 和 Y 轴。
  6. 在此示例中,我们将名称绘制为 X 轴,将年龄绘制为 Y 轴。

下面是实现:

Python3
import matplotlib.pyplot as plt
import csv
  
x = []
y = []
  
with open('biostats.csv','r') as csvfile:
    plots = csv.reader(csvfile, delimiter = ',')
      
    for row in plots:
        x.append(row[0])
        y.append(int(row[2]))
  
plt.bar(x, y, color = 'g', width = 0.72, label = "Age")
plt.xlabel('Names')
plt.ylabel('Ages')
plt.title('Ages of different persons')
plt.legend()
plt.show()


Python3
import matplotlib.pyplot as plt
import csv
  
x = []
y = []
  
with open('Weatherdata.csv','r') as csvfile:
    lines = csv.reader(csvfile, delimiter=',')
    for row in lines:
        x.append(row[0])
        y.append(int(row[1]))
  
plt.plot(x, y, color = 'g', linestyle = 'dashed',
         marker = 'o',label = "Weather Data")
  
plt.xticks(rotation = 25)
plt.xlabel('Dates')
plt.ylabel('Temperature(°C)')
plt.title('Weather Report', fontsize = 20)
plt.grid()
plt.legend()
plt.show()


Python3
import matplotlib.pyplot as plt
import csv
  
Names = []
Values = []
  
with open('bldprs_measure.csv','r') as csvfile:
    lines = csv.reader(csvfile, delimiter=',')
    for row in lines:
        Names.append(row[0])
        Values.append(int(row[1]))
  
plt.scatter(Names, Values, color = 'g',s = 100)
plt.xticks(rotation = 25)
plt.xlabel('Names')
plt.ylabel('Values')
plt.title('Patients Blood Pressure Report', fontsize = 20)
  
plt.show()


Python3
import matplotlib.pyplot as plt
import csv
  
Subjects = []
Scores = []
  
with open('SubjectMarks.csv', 'r') as csvfile:
    lines = csv.reader(csvfile, delimiter = ',')
    for row in lines:
        Subjects.append(row[0])
        Scores.append(int(row[1]))
  
plt.pie(Scores,labels = Subjects,autopct = '%.2f%%')
plt.title('Marks of a Student', fontsize = 20)
plt.show()


输出 :

示例 2:可视化不同日期的天气报告“直通线图。

不同日期的温度 (°C) 以“Weatherdata.csv”形式存储在 CSV 文件中。这两行“日期”和“温度(°C)”用作 X 轴和 Y 轴,用于可视化天气报告。



方案方法:

  1. 导入所需的库、用于可视化的 matplotlib 库和用于读取 CSV 数据的 csv 库。
  2. 使用 open( )函数从 CSV 库中以 'r' 模式(只读)打开文件,并使用 csv.reader( )函数读取文件。
  3. 使用 for 循环读取文件中的每一行。
  4. 将 CSV 文件的所需列附加到列表中。
  5. 读取整个 CSV 文件后,将所需数据绘制为 X 和 Y 轴。
  6. 在此示例中,我们将日期绘制为 X 轴,将温度 (°C ) 绘制为 Y 轴。

下面是实现:

蟒蛇3

import matplotlib.pyplot as plt
import csv
  
x = []
y = []
  
with open('Weatherdata.csv','r') as csvfile:
    lines = csv.reader(csvfile, delimiter=',')
    for row in lines:
        x.append(row[0])
        y.append(int(row[1]))
  
plt.plot(x, y, color = 'g', linestyle = 'dashed',
         marker = 'o',label = "Weather Data")
  
plt.xticks(rotation = 25)
plt.xlabel('Dates')
plt.ylabel('Temperature(°C)')
plt.title('Weather Report', fontsize = 20)
plt.grid()
plt.legend()
plt.show()

输出 :

示例 3:通过散点图可视化医院的患者血压报告

通过散点图“可视化患者血压报告”程序的方法

  1. 导入需要的库,用于可视化的 matplotlib 库和用于读取 CSV 数据的导入 csv 库。
  2. 使用 open( )函数从 CSV 库中以 'r' 模式(只读)打开文件,并使用 csv.reader( )函数读取文件。
  3. 使用 for 循环读取文件中的每一行。
  4. 将 CSV 文件的所需列附加到列表中。
  5. 读取整个 CSV 文件后,将所需数据绘制为 X 和 Y 轴。
  6. 在此示例中,我们将患者姓名绘制为 X 轴,将血压值绘制为 Y 轴。

下面是实现:



蟒蛇3

import matplotlib.pyplot as plt
import csv
  
Names = []
Values = []
  
with open('bldprs_measure.csv','r') as csvfile:
    lines = csv.reader(csvfile, delimiter=',')
    for row in lines:
        Names.append(row[0])
        Values.append(int(row[1]))
  
plt.scatter(Names, Values, color = 'g',s = 100)
plt.xticks(rotation = 25)
plt.xlabel('Names')
plt.ylabel('Values')
plt.title('Patients Blood Pressure Report', fontsize = 20)
  
plt.show()

输出 :

示例 4:使用饼图可视化学生在不同科目中的分数

方案方法:

  1. 导入需要的库,用于可视化的 matplotlib 库和用于读取 CSV 数据的导入 csv 库。
  2. 使用 open( )函数从 CSV 库中以 'r' 模式(只读)打开文件,并使用 csv.reader( )函数读取文件。
  3. 使用 for 循环读取文件中的每一行。
  4. 将 CSV 文件的所需列附加到列表中。
  5. 读取整个 CSV 数据后,使用 plt.pie()函数将所需数据绘制为饼图。

下面是实现:

蟒蛇3

import matplotlib.pyplot as plt
import csv
  
Subjects = []
Scores = []
  
with open('SubjectMarks.csv', 'r') as csvfile:
    lines = csv.reader(csvfile, delimiter = ',')
    for row in lines:
        Subjects.append(row[0])
        Scores.append(int(row[1]))
  
plt.pie(Scores,labels = Subjects,autopct = '%.2f%%')
plt.title('Marks of a Student', fontsize = 20)
plt.show()

输出 :