图a
图b
import pandas as pd
import matplotlib. pyplot as plt
#设置中文显示
from pylab import mpl
mpl. rcParams['font. sans-serif']=['SimHei']
mpl. rcParams['axes. unicode_minus']=False
df1=pd. read_excel("") #读取Excel文件
print() #筛选显示2019年人口800万以上的记录
#将表格内容按2020年人口降序排序后输出
print(df1. sort_values("2020年人口",))
y=df1["2020年人口"]
x=df1. 地市
plt. figure()
plt. title("2020年浙江各地人口柱形图",fontsize=18) #标题字体大小为18
plt. bar(x,y,color="c")
plt. xticks(x)
plt. xlabel("地市",fontsize=12) #坐标标签的字体大小为12
plt. ylabel("2020年人口",fontsize=12)
#显示图表
现有趣味运动会原始成绩表如图a所示,其中每个项目参赛人数均不少于10人,编写Python程序计算每个项目的前六名得分及各班总分,并以柱形图呈现各班总分情况,如图b所示。
matplotib模块绘图barh)函数及其参数如下表所示:
函数名及用法 | 功能 |
barh(y轴数据序列,x轴数据序列,其它参数缺省) | 绘制水平柱形图 |
def score(fslist):
jf=[0]*len(fslist)
i=1; c=6; same=1; st=0
①
while i<len(fslist):
if fslist[i]!=fslist[i-1]:
for j in range( ② ):
jf[j]=round (sumfs/ same, 2)
st=i ; same=1 ; sumfs=0
else:
same+=1
if c>0:
c-=1
sumf s=sumfs+c
if ③ :
break
i+=1
if st==0: #处理全体同分的情况
jf=[round (21/len(fslist), 2)]*1en(fslist)
return jf
import pandas as pd
import matplotlib. pyplot as plt
plt. rcParams[" font. sans-serif"]=[" KaiTi", "SimHei", "FangSong"] #设置中文字体
df=pd, read_ excel("dbw. xlsx")
item=["赶猪","投篮","跳绳"]
#创建仅有列标题的DataFrame对象df1
df1=pd. DataFrame (columns=["项目","班级","姓名","成绩","得分"])
for i in range(3) :
dfi tem= ▲ #筛选出同一项目的所有记录
dfitem=dfitem. sort_ _values ("成绩", ascending=False)
lst=list (dfitem ["成绩"]) #把“成绩”列数据转为列表存储
dfitem["得分"]=score(lst) #计算得分
df1=pd. concat ([df1, dfitem]) #合并赋分后的项目记录
dfbj=df1. groupby ("班级", as_ index=False) #按班级分类,保持原索引
dfzf=dfbj["得分"]. sum( ) #计算各班级总分
plt. barh( ④ ) #绘制如图b所示柱形图
plt. ylabel("班级") #y轴标签为“班级”
plt. title("‘趣味运动会’各班总分对比")
plt. show( )
①②③④
import pandas as pd
df= pd.read_ excel("成绩xlsx")
#读取数据,每行包括学生的姓名、班级、信息成缋、通用成绩
df.drop("姓名", axis=1, inplace=True) #删除无关数据列
#计算技术分数
df[技术]= ①
#计算每班的技术平均分
dfmean = df.groupby(班级';as_ index =False)[技术].mean( )
#排序
dfsort
=
import matplotlib.pyplot as plt
pltrc('font', family ='simsun') #设置中文字体
pl.title("技术成绩平均分前3名的班级")
plt.xlabel("班级")
plt.ylabel("技术")
plt.bar( dfsort["班级"], dfsort["技术"], ② ) #设置图例名称
plt.ylim(0, 80)
plt.legend( )
plt.show( )
①②
图a
李老师用Python编写了一个程序,对数据进行分析处理,输出总分大于等于260分的学生信息,并直观显示英语前三名的分数情况,生成了如图b所示的图表。
图b
Python程序代码如下,请在划线处填上合适的代码:
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] #使图形中的中文编码正常显示
df=pd.read_excel("scores. xlsx" )
df["总分"] = # 计算总分列数据
#下行代码:输出总分大于等于260分的学生信息
print( df [ ] )
g=df.groupby("班级",as_index=False)
print(g.英语.mean())
df1=df.sort_values("英语”,)
plt.title("英语成绩前三名分数情况")
x=df1[0:3].姓名
y=df1[0:3].英语
plt.bar(x,y)
plt.legend()
plt.
计算各县市区的“城镇居民收入”(城镇居民收入=工资性收入+经营净收入+财产净收入+转移净收入)
根据“城镇居民收入”值对各市县区进行排位(值大在前,值相同位次相同)
根据全省十一城市的“城镇居民收入”画出图表,如图-2所示。
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_excel
n = len(df)
sj = 0
for i in df.columns[4:]:
sj =
df["城镇居民收入"] = sj
#按“城镇居民收入”为关键字降序排序
df = df.sort_values("城镇居民收入",ascending = False)
df = df. reset_index(drop=True) #重置索引
df["排位"] = 1
for i in range(1, n):
if df.at[i,"城镇居民收入"] == df.at[i - 1,"城镇居民收入"]:
df.at[i,"排位"] =
else:
df.at[i,"排位"] = i + 1
df1 = round(df.groupby("市区", as_index = True).mean(),1) #按“市区”为关键字分组求平均值并保留1位小数,as_index = True表示将“市区”作为索引
plt.figure(figsize=(10,6))
plt.rcParams['font.family']=['SimHei'] #显示汉字
#绘制水平柱形图(条形图)
plt.title('2020年全省各市城镇居民收入情况',fontsize = 20) #设置图表标题文字
plt.show()
①收集数据 ②提出观点 ③形成报告 ④分析数据 ⑤提出问题
图 1
为了分析主要城市气候情况数据,小明利用python绘制反映各城市平均气温的垂直柱形图,如图2所示。
图 2
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.pyplot
import MultipleLocator #MultipleLocator类用于设置刻度间隔
plt.rcParams["font.sans-serif"]=["simHei"]
df=pd.read_csv("qihou.csv",encoding="gbk")
#显示年平均气温最高的城市
df_sort=df.sort_values("年平均气温(℃)",ascending=False)
df1=df_sort.head(10) #下划线处
print(df1)
plt.figure(figsize=(10,5))
x=df1["地市"]
y=df1["年平均气温(℃)"]
#绘制柱形图plt.title("年平均气温最高的城市的 10 个城市") plt.xlabel("地市")
plt.ylabel("年平均气温(℃)")
#显示图例
plt.show()