Python之matplotlib画图总结

目录

前言

一、折线图

效果展示:

二、柱状图

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()  #展示图片

效果展示:

Python之matplotlib画图总结

二、柱状图

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()  #展示图片

效果展示:

Python之matplotlib画图总结

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()

效果展示:

Python之matplotlib画图总结

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()

效果展示:

Python之matplotlib画图总结

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()

效果展示:

Python之matplotlib画图总结

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之matplotlib画图总结

总结

以上就是今天要讲的内容,本文介绍了python画各种图的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

Original: https://blog.csdn.net/weixin_43823589/article/details/125388434
Author: 小码~
Title: Python之matplotlib画图总结

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/767418/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球