最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python讀取csv、Excel文件生成圖表的方法

 更新時間:2023年07月31日 15:46:04   作者:〖羊頭〗??lsy  
這篇文章主要介紹了Python讀取csv、Excel文件生成圖表,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

簡介

本文章介紹了通過讀取csv 或 Excel 文件內(nèi)容,將其轉(zhuǎn)換為折線圖或柱狀圖的方法,并寫入 html 文件中。

1. 讀取CSV文件

1.1. 生成折線圖

1.1.1. 簡單生成圖表

代碼如下

import pandas
import matplotlib.pyplot as plt
# 設(shè)置csv文件路徑
file = r'E:\test.csv'
# 防止中文亂碼
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
# 通過pandas讀取文件內(nèi)容
df = pandas.read_csv(file)
# 將文件第一行設(shè)置為序列名稱
series_names = df .columns
# 將文件數(shù)據(jù)繪制為折線圖
plt.plot(df)
plt.legend(series_names)  #設(shè)置序列名稱
plt.xlabel('橫軸標(biāo)題')     #設(shè)置橫坐標(biāo)名稱
plt.ylabel('縱軸標(biāo)題')     #設(shè)置縱坐標(biāo)名稱
plt.title('圖表標(biāo)題')      #設(shè)置圖表標(biāo)題
# 將繪制的圖表顯示在屏幕上
plt.show()
# 保存圖表為png文件
# plt.savefig('filename.png')

繪制結(jié)果如下(csv文件中含有3列數(shù)據(jù))

1.1.2. 設(shè)置折線圖格式

代碼如下(在1.1.1目錄的代碼基礎(chǔ)上增加了:圖片長寬、標(biāo)記樣式、網(wǎng)格線、橫縱軸參考線)

import pandas
import matplotlib.pyplot as plt
# 設(shè)置csv文件路徑
file = r'E:\test.csv'
# 防止中文亂碼
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
# 通過pandas讀取文件內(nèi)容
df = pandas.read_csv(file)
# 將文件第一行設(shè)置為序列名稱
series_names = df .columns
# 定義圖表大小(長15,高8),必須放在plt.plot前面
plt.figure(figsize=(15,8))
# 將文件數(shù)據(jù)繪制為折線圖
plt.plot(df, marker='o', markersize=3)  #marker設(shè)置標(biāo)記樣式和大小
plt.xlabel('橫軸標(biāo)題')   #設(shè)置橫坐標(biāo)名稱
plt.ylabel('縱軸標(biāo)題')   #設(shè)置縱坐標(biāo)名稱
plt.title('圖表標(biāo)題')    #設(shè)置圖表標(biāo)題
plt.grid()              #顯示網(wǎng)格線
plt.legend(series_names)  #設(shè)置序列名稱
plt.axhline(y=2, color='r', linestyle='--')   #在y軸上添加橫向參考線。
plt.axvline(x=1, color='r', linestyle='--')   #在x軸上添加縱向參考線。
# 將繪制的圖表顯示在屏幕上
plt.show()
# 保存圖表為png文件
# plt.savefig('filename.png')

繪制結(jié)果如下

1.2. 生成柱狀圖

1.2.1. 簡單生成圖表

代碼如下

import pandas as pd
import matplotlib.pyplot as plt
# 從CSV文件讀取數(shù)據(jù)并指定第一行為列名
data = pd.read_csv(r'E:\test.csv', header=0)
# 防止中文亂碼
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
# 獲取列名和對應(yīng)的值
columns = data.columns
values = data.iloc[0].values
# 繪制柱狀圖
plt.bar(columns, values)
plt.xlabel('橫軸標(biāo)題')
plt.ylabel('縱軸標(biāo)題')
plt.title('圖表標(biāo)題')
# 將繪制的圖表顯示在屏幕上
plt.show()
# 保存圖表為png文件
# plt.savefig('filename.png')

繪制結(jié)果如下

1.2.2. 設(shè)置柱狀圖格式

顏色代碼

'b' 表示藍(lán)色'g' 表示綠色'r' 表示紅色'c' 表示青色'm' 表示品紅色'y' 表示黃色'k' 表示黑色'w' 表示白色。

代碼如下(在1.2.1目錄的代碼基礎(chǔ)上增加了:圖片長寬、柱子寬度/顏色、邊框?qū)挾?顏色)

import pandas as pd
import matplotlib.pyplot as plt
# 從CSV文件讀取數(shù)據(jù)并指定第一行為列名
data = pd.read_csv(r'E:\test.csv', header=0)
# 防止中文亂碼
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
# 定義圖表大小(長15,高8),必須放在plt.plot前面
plt.figure(figsize=(15,8))
# 獲取列名和對應(yīng)的值
columns = data.columns
values = data.iloc[0].values
# 繪制柱狀圖
plt.bar(columns, values,    #橫軸坐標(biāo)
        color='y',          #設(shè)置柱子顏色(黃色,見顏色代碼)
        width = 0.8,        #設(shè)置柱子寬度
        edgecolor='k',      #設(shè)置柱子邊框顏色(黑色,見顏色代碼)
        linewidth=2         #設(shè)置柱子邊框?qū)挾?
)
plt.xlabel('橫軸標(biāo)題')
plt.ylabel('縱軸標(biāo)題')
plt.title('圖表標(biāo)題')
# 將繪制的圖表顯示在屏幕上
plt.show()
# 保存圖表為png文件
# plt.savefig('filename.png')

繪制結(jié)果如下

2. 讀取Excel文件

2.1. 生成折線圖

2.1.1. 簡單生成圖表

代碼如下

import pandas
import matplotlib.pyplot as plt
# 防止亂碼
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
# 讀取Excel文件內(nèi)容
df = pandas.read_excel(r'E:\test.xlsx', sheet_name='Sheet1')
column_names = df.columns.tolist()  #獲取第1行名稱
excel_rows = df.shape[0]            #獲取行數(shù)
# 設(shè)置橫軸數(shù)據(jù),可以在Excel中獲取,這里直接將行數(shù)從1開始遍歷到末尾
x = [i for i in range(1, excel_rows+1)]
# 遍歷第一行的列名
for col_name in column_names:
    # 通過列名提取畫圖的數(shù)據(jù)
    y = df[col_name].to_numpy()
    # 畫圖,執(zhí)行橫軸坐標(biāo),將線條圖例名設(shè)置為第一行的列名
    plt.plot(x, y, label=col_name)
# 設(shè)置屬性
plt.legend()  # 顯示圖例標(biāo)題
plt.xlabel('橫坐標(biāo)名稱')
plt.ylabel('縱坐標(biāo)名稱')
plt.title('折線圖標(biāo)題')
# plt.savefig('./filename.jpg')  # 保存圖片
plt.show()  # 查看圖片

繪制結(jié)果如下

2.1.2. 設(shè)置折線圖格式

代碼如下(在2.1.1目錄的代碼基礎(chǔ)上增加了:圖片長寬、標(biāo)記樣式、網(wǎng)格線、橫縱軸參考線)

import pandas
import matplotlib.pyplot as plt
# 防止亂碼
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
# 讀取Excel文件內(nèi)容,如果讀取csv文件,則使用pandas.read_csv
df = pandas.read_excel(r'E:\test.xlsx', sheet_name='Sheet1')
column_names = df.columns.tolist()  #讀取第1行名稱
excel_rows = df.shape[0]             #讀取行數(shù)
# 定義圖表大小(長15,高8),必須放在plt.plot前面
plt.figure(figsize=(15,8))
# 設(shè)置橫軸數(shù)據(jù),可以在Excel中獲取,這里直接將行數(shù)從1開始遍歷到末尾
x = [i for i in range(1, excel_rows+1)]
# 遍歷第一行的列名
for col_name in column_names:
    # 通過列名提取畫圖的數(shù)據(jù)
    y = df[col_name].to_numpy()
    # 畫圖,執(zhí)行橫軸坐標(biāo),將線條圖例名設(shè)置為第一行的列名
    plt.plot(x, y, label=col_name, marker='o', markersize=3)    #marker設(shè)置標(biāo)記樣式和大小
# 設(shè)置屬性
plt.legend()  # 顯示圖例標(biāo)題
plt.xlabel('橫坐標(biāo)名稱')
plt.ylabel('縱坐標(biāo)名稱')
plt.title('折線圖標(biāo)題')
plt.grid()              #顯示網(wǎng)格線
plt.axhline(y=2, color='r', linestyle='--')   #在y軸上添加橫向參考線
plt.axvline(x=1, color='r', linestyle='--')   #在x軸上添加縱向參考線
# plt.savefig('./aa.jpg')  # 保存圖片
plt.show()  # 查看圖片

繪制結(jié)果如下

2.2. 生成柱狀圖

2.2.1. 簡單生成圖表

代碼如下(單行數(shù)據(jù))

import pandas
import matplotlib.pyplot as plt
# 防止亂碼
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
# 讀取Excel文件內(nèi)容
df = pandas.read_excel(r'E:\test.xlsx', sheet_name='Sheet1')
# 獲取第一行的名稱
column_names = df.columns.tolist()
# 去除第一行,并轉(zhuǎn)置數(shù)據(jù)
data = df.T
# 創(chuàng)建柱狀圖,指定繪制的類型為柱狀圖(line:折線圖(默認(rèn)),bar:柱狀圖,barh:水平柱狀圖,hist:直方圖,box:箱線圖,kde:核密度估計圖,density:密度圖,area:面積圖,scatter:散點圖,hexbin:Hexbin 圖(用于顯示二維數(shù)據(jù)的分布情況))
data.plot(kind='bar')
# 設(shè)置柱子的名稱(rotation旋轉(zhuǎn)柱子標(biāo)題的度數(shù))
plt.xticks(range(len(column_names)), column_names, rotation=0)
# 添加標(biāo)題和坐標(biāo)軸標(biāo)簽
plt.title('圖表標(biāo)題')
plt.xlabel('橫軸標(biāo)題')
plt.ylabel('縱軸標(biāo)題')
# 顯示柱狀圖
plt.show()

繪制結(jié)果如下

多行數(shù)據(jù)需要增加修改圖例名稱的方法,默認(rèn)從0開始,設(shè)置為從1開始。每個圖例表示行數(shù),比例1:第一行;2:第二行...

import pandas
import matplotlib.pyplot as plt
# 防止亂碼
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
# 讀取Excel文件內(nèi)容
df = pandas.read_excel(r'E:\test.xlsx', sheet_name='Sheet2')
# 獲取第一行的名稱
column_names = df.columns.tolist()
# 去除第一行,并轉(zhuǎn)置數(shù)據(jù)
data = df.T
# 創(chuàng)建柱狀圖,指定繪制的類型為柱狀圖(line:折線圖(默認(rèn)),bar:柱狀圖,barh:水平柱狀圖,hist:直方圖,box:箱線圖,kde:核密度估計圖,density:密度圖,area:面積圖,scatter:散點圖,hexbin:Hexbin 圖(用于顯示二維數(shù)據(jù)的分布情況))
data.plot(kind='bar')
# 設(shè)置柱子的名稱(rotation旋轉(zhuǎn)柱子標(biāo)題的度數(shù))
plt.xticks(range(len(column_names)), column_names, rotation=0)
# 添加標(biāo)題和坐標(biāo)軸標(biāo)簽
plt.title('圖表標(biāo)題')
plt.xlabel('橫軸標(biāo)題')
plt.ylabel('縱軸標(biāo)題')
# 修改圖例名稱(從1開始,1表示第1行數(shù)據(jù)...)
handles, labels = plt.gca().get_legend_handles_labels()
labels = [int(label)+1 for label in labels]
plt.legend(handles, labels)
# 顯示柱狀圖
plt.show()

2.2.2. 設(shè)置柱狀圖格式

顏色代碼

'b' 表示藍(lán)色'g' 表示綠色'r' 表示紅色'c' 表示青色'm' 表示品紅色'y' 表示黃色'k' 表示黑色'w' 表示白色。

代碼如下(在2.2.1目錄的代碼基礎(chǔ)上增加了:圖片長寬、柱子寬度/顏色、邊框?qū)挾?顏色)

import pandas
import matplotlib.pyplot as plt
# 防止亂碼
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
# 讀取Excel文件內(nèi)容
df = pandas.read_excel(r'E:\test.xlsx', sheet_name='Sheet1')
# 設(shè)置圖片大小(長15,寬8)
fig = plt.figure(figsize=(15, 8))
ax = fig.add_subplot()
# 獲取第一行的名稱
column_names = df.columns.tolist()
# 去除第一行,并轉(zhuǎn)置數(shù)據(jù)
data = df.T
# 創(chuàng)建柱狀圖
data.plot(
    kind='bar', #指定繪制的類型為柱狀圖(line:折線圖(默認(rèn)),bar:柱狀圖,barh:水平柱狀圖,hist:直方圖,box:箱線圖,kde:核密度估計圖,density:密度圖,area:面積圖,scatter:散點圖,hexbin:Hexbin 圖(用于顯示二維數(shù)據(jù)的分布情況))
    color='y',  #設(shè)置柱子顏色(黃色,見顏色代碼)
    width=0.8,  # 設(shè)置柱子寬度
    edgecolor='k',  #設(shè)置柱子邊框顏色(黑色,見顏色代碼)
    linewidth=2,    #設(shè)置柱子邊框?qū)挾?
    ax=ax           #設(shè)置圖片大小
)
# 設(shè)置柱子的名稱(rotation旋轉(zhuǎn)柱子標(biāo)題的度數(shù))
plt.xticks(range(len(column_names)), column_names, rotation=0)
# 添加標(biāo)題和坐標(biāo)軸標(biāo)簽
plt.title('圖表標(biāo)題')
plt.xlabel('橫軸標(biāo)題')
plt.ylabel('縱軸標(biāo)題')
# 顯示柱狀圖
plt.show()

繪制結(jié)果如下

3. 將生成的折線圖寫入html文件

3.1. 直接寫入圖片

使用MarkupPy 將圖片寫入html文件

from MarkupPy import markup
# 添加圖片,設(shè)置長、寬
page = markup.page()
page.add('<img src="./filename.png" alt="csv生成的折線圖" width="800" height="500">')
# 寫入文件
with open('./tmp.html', 'w') as file:
    file.write(str(page))

代碼如下(以csv生成的折線圖為例)

import pandas
import matplotlib.pyplot as plt
from MarkupPy import markup
# 設(shè)置csv文件路徑
file = r'E:\test.csv'
# 防止中文亂碼
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
# 通過pandas讀取文件內(nèi)容
df = pandas.read_csv(file)
# 將文件第一行設(shè)置為序列名稱
series_names = df .columns
# 將文件數(shù)據(jù)繪制為折線圖
plt.plot(df)
plt.legend(series_names)  #設(shè)置序列名稱
plt.xlabel('橫軸標(biāo)題')     #設(shè)置橫坐標(biāo)名稱
plt.ylabel('縱軸標(biāo)題')     #設(shè)置縱坐標(biāo)名稱
plt.title('圖表標(biāo)題')      #設(shè)置圖表標(biāo)題
# 保存圖表為png文件
plt.savefig('./filename.png')
# 添加圖片
page = markup.page()
page.add('<img src="./filename.png" alt="csv生成的折線圖" width="800" height="500">')
# 寫入文件
with open('./tmp.html', 'w') as file:
    file.write(str(page))

結(jié)果如下

3.2. 添加文字描述

文件描述見MarkupPy 的詳細(xì)使用方法

http://www.fzitv.net/python/2938017jt.htm

到此這篇關(guān)于Python讀取csv、Excel文件生成圖表的文章就介紹到這了,更多相關(guān)Python讀取csv生成圖表內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python實用日期時間處理方法匯總

    Python實用日期時間處理方法匯總

    這篇文章主要介紹了Python實用日期時間處理方法匯總,本文講解了獲取當(dāng)前datetime、獲取當(dāng)天date、獲取明天/前N天、獲取當(dāng)天開始和結(jié)束時間(00:00:00 23:59:59)、獲取兩個datetime的時間差、獲取本周/本月/上月最后一天等實用方法 ,需要的朋友可以參考下
    2015-05-05
  • 使用python將一個文件分配到指定的多個文件夾

    使用python將一個文件分配到指定的多個文件夾

    這篇文章主要為大家詳細(xì)介紹了如何使用python將一個文件分配到指定的多個文件夾,也就說將一個文件分配到一個母文件夾下的所有的子文件夾,感興趣的可以了解下
    2025-01-01
  • Python已正確安裝Numpy但無法調(diào)用背后的奧秘及解決辦法

    Python已正確安裝Numpy但無法調(diào)用背后的奧秘及解決辦法

    這篇文章主要給大家介紹了關(guān)于Python已正確安裝Numpy但無法調(diào)用背后的奧秘及解決辦法,文中提供了多種可能的原因和解決方案,同時還給出了預(yù)防措施,幫助開發(fā)者避免未來出現(xiàn)類似問題,需要的朋友可以參考下
    2024-12-12
  • python實現(xiàn)創(chuàng)建新列表和新字典,并使元素及鍵值對全部變成小寫

    python實現(xiàn)創(chuàng)建新列表和新字典,并使元素及鍵值對全部變成小寫

    今天小編就為大家分享一篇python實現(xiàn)創(chuàng)建新列表和新字典,并使元素及鍵值對全部變成小寫,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • Python使用OpenCV進(jìn)行標(biāo)定

    Python使用OpenCV進(jìn)行標(biāo)定

    這篇文章主要介紹了Python使用OpenCV進(jìn)行標(biāo)定,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • Pytest斷言的具體使用

    Pytest斷言的具體使用

    本文主要介紹了Pytest斷言的具體使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • 利用Python實現(xiàn)智能合約的示例詳解

    利用Python實現(xiàn)智能合約的示例詳解

    智能合約是一種由計算機程序編寫的自動化合約,它可以在沒有第三方干預(yù)的情況下執(zhí)行交易和契約條款。這篇文章主要介紹了如何利用Python實現(xiàn)智能合約,需要的可以參考一下
    2023-04-04
  • 基于Python實現(xiàn)給喜歡的主播自動發(fā)彈幕

    基于Python實現(xiàn)給喜歡的主播自動發(fā)彈幕

    這篇文章主要介紹了python如何實現(xiàn)給喜歡的主播自動發(fā)彈幕的功能,文中的示例代碼對我們學(xué)習(xí)Python有一定的幫助,感興趣的朋友可以了解下
    2021-12-12
  • python基礎(chǔ)之錯誤和異常處理

    python基礎(chǔ)之錯誤和異常處理

    這篇文章主要介紹了python錯誤和異常處理,實例分析了Python中返回一個返回值與多個返回值的方法,需要的朋友可以參考下
    2021-10-10
  • Python使用markconv實現(xiàn)將Markdown轉(zhuǎn)換為PDF

    Python使用markconv實現(xiàn)將Markdown轉(zhuǎn)換為PDF

    PDF是一種跨平臺的文檔格式,將?Markdown?轉(zhuǎn)換為?PDF?是?markconv?的另一個核心功能,下面我們就來看看Python如何使用markconv實現(xiàn)將Markdown轉(zhuǎn)換為PDF吧
    2026-03-03

最新評論

奇台县| 安阳市| 太谷县| 射洪县| 德惠市| 南漳县| 沛县| 莱西市| 延安市| 玉田县| 全南县| 金乡县| 班玛县| 深州市| 乌审旗| 融水| 佛教| 长兴县| 平阳县| 乌拉特前旗| 泌阳县| 黄平县| 古田县| 海伦市| 郴州市| 邵阳县| 滦平县| 应城市| 江油市| 柳河县| 绵阳市| 大荔县| 民勤县| 桓台县| 石门县| 新田县| 尚志市| 时尚| 新蔡县| 镇远县| 镇宁|