欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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:散點(diǎn)圖,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:散點(diǎn)圖,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:散點(diǎn)圖,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.dbjr.com.cn/python/2938017jt.htm

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

相關(guān)文章

  • python 中if else 語句的作用及示例代碼

    python 中if else 語句的作用及示例代碼

    python中的if-else語句是一個判斷性語句,既然是判斷就要有條件以及滿足條件與不滿足的情況,一下將講解一些if-else語句的知識,需要的朋友參考下吧
    2018-03-03
  • opencv python 傅里葉變換的使用

    opencv python 傅里葉變換的使用

    這篇文章主要介紹了opencv python 傅里葉變換的使用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • python中dot函數(shù)運(yùn)算過程總結(jié)

    python中dot函數(shù)運(yùn)算過程總結(jié)

    dot函數(shù)為numpy庫下的一個函數(shù),主要用于矩陣的乘法運(yùn)算,其中包括:向量內(nèi)積、多維矩陣乘法和矩陣與向量的乘法,下面這篇文章主要給大家介紹了關(guān)于python中dot函數(shù)運(yùn)算過程的相關(guān)資料,需要的朋友可以參考下
    2022-09-09
  • python同步windows和linux文件

    python同步windows和linux文件

    這篇文章主要為大家詳細(xì)介紹了python同步windows和linux文件,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • python處理圖片之PIL模塊簡單使用方法

    python處理圖片之PIL模塊簡單使用方法

    這篇文章主要介紹了python處理圖片之PIL模塊簡單使用方法,涉及Python使用PIL模塊實現(xiàn)針對圖片的銳化、繪制直線、繪制橢圓等相關(guān)技巧,需要的朋友可以參考下
    2015-05-05
  • python base64 decode incorrect padding錯誤解決方法

    python base64 decode incorrect padding錯誤解決方法

    這篇文章主要介紹了python base64 decode incorrect padding錯誤解決方法,本文使用把string補(bǔ)齊等號的方法解決了這個錯誤,需要的朋友可以參考下
    2015-01-01
  • Python通過cron或schedule實現(xiàn)爬蟲的自動定時運(yùn)行

    Python通過cron或schedule實現(xiàn)爬蟲的自動定時運(yùn)行

    自動定時運(yùn)行爬蟲是很多數(shù)據(jù)采集項目的基本需求,通過 Python 實現(xiàn)定時任務(wù),可以保證數(shù)據(jù)采集的高效和持續(xù)性,本文將帶大家了解如何在 Python 中使用 cron 和 schedule 來實現(xiàn)爬蟲的自動定時運(yùn)行,需要的朋友可以參考下
    2024-12-12
  • Python基于BeautifulSoup和requests實現(xiàn)的爬蟲功能示例

    Python基于BeautifulSoup和requests實現(xiàn)的爬蟲功能示例

    這篇文章主要介紹了Python基于BeautifulSoup和requests實現(xiàn)的爬蟲功能,結(jié)合實例形式分析了Python使用BeautifulSoup和requests庫爬取網(wǎng)站指定信息的相關(guān)操作技巧,需要的朋友可以參考下
    2019-08-08
  • 使用Python的Matplotlib繪制漸變的彩色曲線

    使用Python的Matplotlib繪制漸變的彩色曲線

    這篇文章主要介紹了使用Python的Matplotlib繪制漸變的彩色曲線,Matplotlib是Python生態(tài)圈中應(yīng)用最為廣泛的2D繪圖庫,通過擴(kuò)展工具包mplot3d,也可以繪制簡單的3D模型,需要的朋友可以參考下
    2023-08-08
  • Python:type、object、class與內(nèi)置類型實例

    Python:type、object、class與內(nèi)置類型實例

    今天小編就為大家分享一篇Python:type、object、class與內(nèi)置類型實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12

最新評論