程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python之matplotlib畫圖總結

編輯:Python

目錄

前言

一、折線圖

 效果展示:

 二、柱狀圖

1、標准柱狀圖代碼如下(示例)

2、並列柱狀圖代碼如下(示例)

3、堆疊柱狀圖代碼如下(示例)

4、橫向柱狀圖代碼如下(示例)

5、正負柱狀圖代碼如下(示例)

總結


前言

由於可視化工作的使用越來越廣泛,使用python畫圖成為重要趨勢,該文章總結一下各種圖形繪畫,並提出一些小技巧和方法。


提示:以下是本篇文章正文內容,下面案例可供參考

一、折線圖

折線圖作為比較常見以及相對簡單深受用戶喜愛。下面以一個簡單例子進行展現。有疑問的可以在評論區指出。

import matplotlib.pyplot as plt #導入畫圖庫
import pandas as pd
df = pd.read_csv(r'C:\XXX\aaa.csv',encoding='gbk') #打開csv文件
plt.rcParams['font.sans-serif'] = 'SimHei' # 設置字體為簡黑(SimHei)
plt.rcParams['font.sans-serif'] = 'FangSong' # 設置字體為仿宋(FangSong)
#上述兩行可以使中文正常顯示
a=df['X軸'] #讀取該列名下的所有數據
b=df['Y軸'] #讀取該列名下的所有數據
plt.xlabel("日期", loc='center') #添加x軸標題
plt.ylabel("數據", loc='center') #添加y軸標題,如果y軸標題需要特殊字符,推薦使用latex格式,例如 "體積/"+r'$cm^3$'
plt.plot(a, b, 'b:o', label='時間數據')#畫折線圖,b代表藍色,o代表每個點數據用圓圈顯示,:代表虛線,-代表實線
#plt.plot(a, X, 'y', label='時間數據2') #如果需要在一張圖上畫多條折線,則多添加幾行該語句
plt.legend() #顯示圖例
plt.savefig(r'C:\xxx\XXX.png') #將畫的圖片進行保存
plt.show() #展示圖片

 效果展示:

 二、柱狀圖

1、標准柱狀圖代碼如下(示例):

import csv
import matplotlib.pyplot as plt
f = csv.reader(open(r'C:\XXX\aaa.csv', 'r')) #打開csv文件
plt.rcParams['font.sans-serif'] = 'SimHei' # 設置字體為簡黑(SimHei)
plt.rcParams["axes.unicode_minus"] = False #正確顯示正負號
#上述兩行可以使中文正常顯示
data = list(f) # csv數據轉換為列表
# 畫圖,plt.bar()可以畫柱狀圖
for i in range(1,len(data)):
print(data[1])
for j in range(len(data[1])):
data[1][j]=int(data[1][j]) #將y軸數據轉換成整型
plt.bar(data[0], data[1])
plt.xlabel("日期", loc='center') #添加x軸標題
plt.ylabel("數據", loc='center') #添加y軸標題,如果y軸標題需要特殊字符,推薦使用latex格式,例如 "體積/"+r'$cm^3$'
plt.title("銷量分析")
plt.savefig(r'C:\xxx\XXX.png') #將畫的圖片進行保存
plt.show() #展示圖片

 效果展示: 

2、並列柱狀圖代碼如下(示例):

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
df = pd.read_csv(r'C:\XXX\xxx.csv',encoding='gbk')
plt.rcParams['font.sans-serif'] = 'SimHei' # 設置字體為簡黑(SimHei)
plt.rcParams["axes.unicode_minus"] = False #正確顯示正負號
a = df['襯衫']
b = df['運動鞋']
c = df['帽子']
x = df['x軸']
# 有三種類型的數據,n設置為3
total_width, n = 0.8, 3
# 每種類型的柱狀圖寬度
width = total_width / n
# 重新設置x軸的坐標
x = x - (total_width - width) / 2 #讓其居中顯示
# 畫柱狀圖
plt.bar(x, a, width=width, label="襯衫")
plt.bar(x + width, b, width=width, label="運動鞋")
plt.bar(x + 2*width, c, width=width, label="帽子")
# 顯示圖例
plt.legend(loc="upper right")
# 顯示柱狀圖
plt.show()

效果展示:  

3、堆疊柱狀圖代碼如下(示例):

import matplotlib.pyplot as plt
import pandas as pd
df = pd.read_csv(r'C:\XXX\XX.csv',encoding='gbk')
plt.rcParams['font.sans-serif'] = 'SimHei' # 設置字體為簡黑(SimHei)
plt.rcParams["axes.unicode_minus"] = False #正確顯示正負號
a = df['襯衫']
b = df['運動鞋']
c = df['帽子']
x = df['x軸']
# 畫柱狀圖
plt.bar(x, a, label="襯衫")
plt.bar(x, b,bottom=a, label="運動鞋")
plt.bar(x, c, bottom=b,label="帽子")
# 顯示圖例
plt.legend(loc="upper right")
# 顯示柱狀圖
plt.show()

效果展示:  

4、橫向柱狀圖代碼如下(示例):

import matplotlib.pyplot as plt
import pandas as pd
df = pd.read_csv(r'C:\XXX\XX.csv',encoding='gbk')
plt.rcParams['font.sans-serif'] = 'SimHei' # 設置字體為簡黑(SimHei)
plt.rcParams["axes.unicode_minus"] = False #正確顯示正負號
a = df['襯衫']
b = df['運動鞋']
c = df['帽子']
x = df['x軸']
# 有三種類型的數據,n設置為3
total_width, n = 0.8, 3
# 每種類型的柱狀圖寬度
width = total_width / n
# 重新設置x軸的坐標
x = x - (total_width - width) / 2 #讓其居中顯示
# 畫柱狀圖
plt.barh(x, a, label="襯衫",height=width)
plt.barh(x, b, label="運動鞋",height=width)
plt.barh(x, c, label="帽子",height=width)
# 顯示圖例
plt.legend(loc="upper right")
# 顯示柱狀圖
plt.show()

 效果展示: 

5、正負柱狀圖代碼如下(示例):

import matplotlib.pyplot as plt
import pandas as pd
df = pd.read_csv(r'C:\XXX\XX.csv',encoding='gbk')
plt.rcParams['font.sans-serif'] = 'SimHei' # 設置字體為簡黑(SimHei)
plt.rcParams["axes.unicode_minus"] = False #正確顯示正負號
a = df['襯衫']
b = df['運動鞋']
# c = df['帽子']
x = df['x軸']
# 畫柱狀圖
plt.bar(x, a, label="襯衫")
plt.bar(x, -b, label="運動鞋")
# plt.bar(x, c, label="帽子")
# 顯示圖例
plt.legend(loc="upper right")
# 顯示柱狀圖
plt.show()

  效果展示: 

總結

以上就是今天要講的內容,本文介紹了python畫各種圖的使用,而pandas提供了大量能使我們快速便捷地處理數據的函數和方法。


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved