由于可视化工作的使用越来越广泛,使用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提供了大量能使我们快速便捷地处理数据的函数和方法。