python-Matplotlib库
2021/9/4 20:06:34
本文主要是介绍python-Matplotlib库,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
垂直柱状图 bar()
data = pd.read_excel(pth) data.sort_values(by="分数",inplace=True,ascending=False) # 图标中如需要显示中文,则定义中文类型,否则显示乱码 plt.rcParams["font.sans-serif"]=["Simhei"] # 图中如果某个轴的数据要显示负数,设置如下. plt.rcParams['axes.unicode_minus'] = False plt.bar(x=data["姓名"],height=data["分数"],color="skyblue",label="分数成绩") #label是设定图例,需要用legend方法显示出来 plt.legend() #loc参数如下 '''' best' 0 'upper right' 1 'upper left' 2 'lower left' 3 'lower right' 4 'right' 5 'center left' 6 'center right' 7 'lower center' 8 'upper center' 9 'center' 10 ''' plt.xlabel("考生姓名") plt.ylabel("考生成绩") plt.xticks([i for i in range(0,9,2)],rotation = 45) plt.ylim(-20,max(data["分数"])+20) plt.title(label="一年级考试成绩",fontdict={"fontsize":16,"fontweight":"bold"}) #字体参数可以用上面字典模式,也可以用下面的单个参数赋值模式 plt.title(label="一年级考试成绩",fontsize=16,fontweight="bold") plt.show()
分组柱形图,
原理其实很简单,先生成6部影片的第一天数据,然后在往右偏移一点距离生成第二天的数据,3~5天重复,
第一天的偏移距离为0,第二天的偏移距离为0+偏移距离,第二天的偏移距离为0+偏移距离*2,3~5天重复
在下面代码中,我们对每天生成的柱形图设置自身宽度为0.2,每一天的票房数据间隔为0.1
plt.rcParams["font.sans-serif"]=["Simhei"] # 图中如果某个轴的数据要显示负数,设置如下. plt.rcParams['axes.unicode_minus'] = False # 如果对柱形宽度和偏移概念不深,可以尝试修改偏移为0.2试试 width = 0.2 space = 0.1 plt.bar(data["影片名"],data["第一天票房"],width=width,label="day1") plt.bar([i+(space*1) for i in range(len(data["影片名"]))],data["第二天票房"],width=width,label="day2") plt.bar([i+(space*2) for i in range(len(data["影片名"]))],data["第三天票房"],width=width,label="day3") plt.bar([i+(space*3) for i in range(len(data["影片名"]))],data["第四天票房"],width=width,label="day4") plt.bar([i+(space*4) for i in range(len(data["影片名"]))],data["第五天票房"],width=width,label="day5") plt.legend() # xticks第一个参数代表了每个 plt.xticks([i+(space*2) for i in range(len(data["影片名"]))],data["影片名"].values.tolist()) plt.show()
优化版: 上面如果需要5天的票房比较,重复了5次.试着用循环遍历plt.bar()
plt.rcParams["font.sans-serif"]=["Simhei"] # 图中如果某个轴的数据要显示负数,设置如下. plt.rcParams['axes.unicode_minus'] = False # 如果对柱形宽度和偏移概念不深,可以尝试修改偏移为0.2试试 width = 0.2 space = 0.1 rows_num = data.iloc[0,:].shape[0] for j in range(1,rows_num): plt.bar([i+(space*j) for i in range(len(data["影片名"]))],data.iloc[:,j], width=width,label="day%i"%(j)) plt.legend() # xticks第一个参数代表了每个 plt.xticks([i+(space*(rows_num/2)) for i in range(len(data["影片名"]))],data["影片名"].values.tolist()) plt.show()
横向柱状图(条形图) barh
plt.rcParams["font.sans-serif"]=["Simhei"] # 图中如果某个轴的数据要显示负数,设置如下. plt.rcParams['axes.unicode_minus'] = False plt.barh(y=data["姓名"],width=data["分数"],height=0.5,label = "成绩分数") plt.legend(loc="best") plt.ylabel(ylabel="学生名",rotation = 15) plt.xlabel(xlabel="成绩") plt.title(label="一年级考试成绩",fontsize=16,fontweight="bold") plt.show()
这篇关于python-Matplotlib库的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-16`PyMuPDF4LLM`:提取PDF数据的神器
- 2024-11-16四种数据科学Web界面框架快速对比:Rio、Reflex、Streamlit和Plotly Dash
- 2024-11-14获取参数学习:Python编程入门教程
- 2024-11-14Python编程基础入门
- 2024-11-14Python编程入门指南
- 2024-11-13Python基础教程
- 2024-11-12Python编程基础指南
- 2024-11-12Python基础编程教程
- 2024-11-08Python编程基础与实践示例
- 2024-11-07Python编程基础指南