【Python】用matplotlib画条形图

时间:2021-06-24 18:08:55   收藏:0   阅读:0

1.简单图形

数据:技术图片

 

代码:

import pandas as pd
import matplotlib.pyplot as plt
catering = rC:\Users\xxx\Desktop\data\课题.xls
df = pd.read_excel(catering)

plt.rcParams[font.sans-serif] = SimHei#中文字体
plt.rcParams[axes.unicode_minus] = False #负号正常显示

ketilist=[]
yearlist=[]
for ax in range(0,10):
    yearlist.append(int(df[年份][ax+0:ax+1]))
    ketilist.append(int(df[项目(课题)数(项)][ax+0:ax+1]))

width = 0.5 #条形宽度

# 设置图形大小
plt.figure(figsize=(10,5),dpi=80)
plt.bar(yearlist,ketilist,width=width,label="xxx数(项)")
#横坐标刻度,高度,宽度,标签(可用于图例)

#在条形图上添加数字
for a,b in zip(yearlist,ketilist):
  plt.text(a, b, b, ha=center, va= bottom,fontsize=14)

# 设置图例
#plt.legend()
# 设置x轴刻度
plt.xticks(yearlist,yearlist,size = 16)
#plt.xlim(2010,2019) #无法完全显示

plt.ylim(0,20000)

#不显示右边和上边的边框
plt.gca().spines[right].set_color(none)
plt.gca().spines[top].set_color(none)

plt.xlabel(年份(年))
plt.ylabel(xxx数(项))
plt.title(xxxxxxxxxxxxxxxxxxxxx数,size=16)
plt.show()

结果:技术图片

 

 2.复合图形

数据:技术图片

 

代码:

import pandas as pd
import matplotlib.pyplot as plt
catering = rC:\Users\xxx\Desktop\data\课题.xls
df = pd.read_excel(catering)

plt.rcParams[font.sans-serif] = SimHei#中文字体
plt.rcParams[axes.unicode_minus] = False

ketilist=[]
renyuanlist=[]
yearlist=[]
for ax in range(0,10):
    yearlist.append(int(df[年份][ax+0:ax+1]))
    ketilist.append(int(df[项目(课题)数(项)][ax+0:ax+1]))
    renyuanlist.append(int(df[项目(课题)参加人数折合全时当量(人年)][ax+0:ax+1]))

bar_width = 0.25
x_y = list(range(len(yearlist)))
x_keti = list(i+bar_width for i in x_y)
x_renyuan = list(i+bar_width for i in x_keti)
# 设置图形大小
plt.figure(figsize=(10,5),dpi=80)
plt.bar(x_keti,ketilist,width=bar_width,label="课题项目数(项)")
plt.bar(x_renyuan,renyuanlist,width=bar_width,label="参加人员折合全时当量(人年)")
# 设置图例
plt.legend()
# 设置x轴刻度
u = []
for a,b in zip(x_keti,x_renyuan):
    u.append(a + (b-a)/2)
plt.xticks(u,yearlist,size = 16)

plt.ylim(5000,25000)
#不显示边框
plt.gca().spines[right].set_color(none)
plt.gca().spines[top].set_color(none)

plt.xlabel(年份(年))
plt.title(xxx课题及参加人数,size=16)
plt.show()

结果:技术图片

 

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!