怎么用Python matplotlib实现折线图
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,这篇文章主要介绍"怎么用Python matplotlib实现折线图",在日常操作中,相信很多人在怎么用Python matplotlib实现折线图问题上存在疑惑,小编查阅了各式资料,整理出简单好用的
千家信息网最后更新 2025年02月01日怎么用Python matplotlib实现折线图
这篇文章主要介绍"怎么用Python matplotlib实现折线图",在日常操作中,相信很多人在怎么用Python matplotlib实现折线图问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"怎么用Python matplotlib实现折线图"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
一、版本
# 01 matplotlib安装情况 import matplotlib matplotlib.__version__
二、图表主题设置
请点击:图表主题设置
三、一次函数
import numpy as np from matplotlib import pyplot as plt # 如何使用中文标题plt.rcParams['font.sans-serif']=['Microsoft YaHei'] # 使用微软雅黑的字体x = np.arange(1,11) y = 2 * x + 5 # 图片显示的是这个公式plt.title("Matplotlib展示") plt.xlabel("x轴") plt.ylabel("y轴") plt.plot(x,y) plt.show()
四、多个一次函数
创建一个关于电影票房的图表:
films=['穿过寒冬拥抱你','反贪风暴5:最终章','李茂扮太子','误杀2','以年为单位的恋爱','黑客帝国:矩阵重启','雄狮少年','魔法满屋','汪汪队立大功大电影','爱情神话']regions=['中国','英国','澳大利亚','美国','美国','中国','英国','澳大利亚','美国','美国']bos=['61,181','44,303','42,439','22,984','13,979','61,181','44,303','41,439','20,984','19,979']persons=['31','23','56','17','9','31','23','56','17','9']prices=['51','43','56','57','49','51','43','56','57','49']showdate=['2022-12-03','2022-12-05','2022-12-01','2022-12-02','2022-11-05','2022-12-03','2022-12-05','2022-12-01','2022-12-02','2022-11-05']ftypes=['剧情','动作','喜剧','剧情','剧情','爱情','动作','动画','动画','动画']points=['8.1','9.0','7.9','6.7','3.8','8.1','9.0','7.9','6.7','3.8']filmdescript={ 'ftypes':ftypes, 'bos':bos, 'prices':prices, 'persons':persons, 'regions':regions, 'showdate':showdate, 'points':points}
import numpy as npimport pandas as pdcnbo2021top5=pd.DataFrame(filmdescript,index=films)cnbo2021top5[['prices','persons']]=cnbo2021top5[['prices','persons']].astype(int)cnbo2021top5['bos']=cnbo2021top5['bos'].str.replace(',','').astype(int)cnbo2021top5['showdate']=cnbo2021top5['showdate'].astype('datetime64')cnbo2021top5['points']=cnbo2021top5['points'].apply(lambda x:float(x) if x!='' else 0)
关于cnboo1.xlsx,我放在我的码云里,需要的朋友自行下载:cnboo1.xlsx
# 读取并初步整理数据集import pandas as pd cnbodf=pd.read_excel('cnboo1.xlsx')cnbodfsort=cnbodf.sort_values(by=['BO'],ascending=False)
def mkpoints(x,y): # 编写points评分 return len(str(x))*(y/25)-3cnbodfsort['points']=cnbodfsort.apply(lambda x:mkpoints(x.BO,x.PERSONS),axis=1)
cnbodfsort.to_excel("cnbodfsort.xlsx",index=False) # 创建一个Excel文件
from matplotlib import pyplot as plt plt.rcParams['font.sans-serif']=['Microsoft YaHei'] # 使用微软雅黑的字体plt.title("票房2021TOP5") plt.xlabel("x轴") plt.ylabel("y轴")x=cnbo2021top5.persons.sort_values()y=cnbo2021top5.prices.sort_values()plt.plot(x,y,marker=".",markersize=20,color='red',linewidth=4,markeredgecolor='blue')plt.show()
# 折线图进阶from matplotlib import pyplot as plt plt.rcParams['font.sans-serif']=['Microsoft YaHei'] # 使用微软雅黑的字体plt.title("中国票房2021TOP5") plt.plot(bo,prices,label='票房与票价')plt.plot(bo,persons,label='票房与人次')plt.plot(bo,points,label='票房与评价')plt.legend() # 显示标签plt.xlabel('票房') # 横坐标轴plt.ylabel('行情') # 纵坐标轴plt.show()
更改一下版式
# 折线图进阶from matplotlib import pyplot as plt plt.rcParams['font.sans-serif']=['Microsoft YaHei'] # 使用微软雅黑的字体plt.title("中国票房2021TOP5") plt.plot(bo,prices,'r^--',label='票房与票价')plt.plot(bo,persons,'g*-',label='票房与人次')plt.plot(bo,points,color='blue',marker='o',markersize=10,label='票房与评价')plt.legend() # 显示标签plt.xlabel('票房') # 横坐标轴标题plt.ylabel('行情') # 纵坐标轴标题plt.show()
五、填充折线图
填充折线图:当确定一条数据线上面的一点的时候,能够将该点的上下两部分分别使用不同的颜色填充。
dev_x=[25,26,27,28,29,30] # 开发者的年龄dev_y=[7567,8789,8900,11560,16789,25231] #收入情况py_dev_y=[5567,6789,9098,15560,20789,23231] # python开发者js_dev_y=[6567,7789,8098,12356,14789,20231] # java开发者devsalary=pd.DataFrame([dev_x,dev_y,py_dev_y,js_dev_y])devsalaryT=pd.DataFrame(devsalary.values.T,columns=["Age","Dev","Python","Java"])
# 绘制带阴影的折线图from matplotlib import pyplot as plt plt.style.use('classic')plt.figure(figsize=(7,4))plt.rcParams['font.sans-serif']=['Microsoft YaHei'] # 使用微软雅黑的字体plt.title("开发人员薪资情况") baseline=10000plt.plot(devsalaryT["Age"],devsalaryT["Dev"],label="总体薪资")plt.plot(devsalaryT["Age"],devsalaryT["Python"],label="Python薪资") # 如果没有label是不会显示legend的数据标签的plt.fill_between(devsalaryT["Age"],devsalaryT["Python"],baseline,where=(devsalaryT["Python"]>baseline),interpolate=True,color='yellow')plt.fill_between(devsalaryT["Age"],devsalaryT["Python"],baseline,where=(devsalaryT["Python"]<=baseline),interpolate=True,color='red')plt.grid()plt.legend()plt.show()
# 绘制带阴影的折线图from matplotlib import pyplot as plt plt.style.use('classic')plt.figure(figsize=(7,4))plt.rcParams['font.sans-serif']=['Microsoft YaHei'] # 使用微软雅黑的字体plt.title("开发人员薪资情况") baseline=10000plt.plot(devsalaryT["Age"],devsalaryT["Dev"],label="总体薪资")plt.plot(devsalaryT["Age"],devsalaryT["Python"],label="Python薪资") # 如果没有label是不会显示legend的数据标签的plt.fill_between(devsalaryT["Age"],devsalaryT["Python"],baseline,where=(devsalaryT["Python"]>baseline),interpolate=True,color='yellow',alpha=0.3)plt.fill_between(devsalaryT["Age"],devsalaryT["Python"],baseline,where=(devsalaryT["Python"]<=baseline),interpolate=True,color='red',alpha=0.3) # alpha=0.3调整透明度plt.grid()plt.legend()plt.show()
# 绘制带阴影的折线图from matplotlib import pyplot as plt plt.style.use('classic')plt.figure(figsize=(7,4))plt.rcParams['font.sans-serif']=['Microsoft YaHei'] # 使用微软雅黑的字体plt.title("开发人员薪资情况") baseline=10000plt.plot(devsalaryT["Age"],devsalaryT["Dev"],label="总体薪资")plt.plot(devsalaryT["Age"],devsalaryT["Python"],label="Python薪资") # 如果没有label是不会显示legend的数据标签的plt.fill_between(devsalaryT["Age"],devsalaryT["Python"],baseline,where=(devsalaryT["Python"]>baseline),interpolate=True,color='pink',alpha=0.7,label="高于10000元")plt.fill_between(devsalaryT["Age"],devsalaryT["Python"],baseline,where=(devsalaryT["Python"]<=baseline),interpolate=True,color='purple',alpha=0.7,label="低于或等于10000元") # alpha=0.3调整透明度plt.grid()plt.legend()plt.show()
interpolate=True:将交叉的位置进行填充
# 绘制带阴影的折线图from matplotlib import pyplot as plt plt.style.use('classic')plt.figure(figsize=(7,4))plt.rcParams['font.sans-serif']=['Microsoft YaHei'] # 使用微软雅黑的字体plt.title("开发人员薪资情况") plt.plot(devsalaryT["Age"],devsalaryT["Dev"],label="总体薪资")plt.plot(devsalaryT["Age"],devsalaryT["Python"],label="Python薪资") # 如果没有label是不会显示legend的数据标签的plt.fill_between(devsalaryT["Age"],devsalaryT["Python"],devsalaryT["Dev"],where=(devsalaryT["Python"]>baseline),interpolate=True,color='green',alpha=0.7,label="高于总体")plt.fill_between(devsalaryT["Age"],devsalaryT["Python"],devsalaryT["Dev"],where=(devsalaryT["Python"]<=baseline),interpolate=True,color='tomato',alpha=0.7,label="低于或等于总体") # alpha=0.3调整透明度plt.grid()plt.legend()plt.show()
到此,关于"怎么用Python matplotlib实现折线图"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
线图
票房
薪资
字体
微软
开发
总体
情况
数据
标签
人员
阴影
中国
美国
学习
剧情
动画
图表
开发者
标题
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
梦幻一年内服务器
诸葛建伟网络技术怎么样
学生云服务器搭建教程
苏州专业软件开发正规平台
网络安全的宣传画怎么画
营销软件开发商家活动方案
确定性网络技术
网络技术类专业的未来工作
中国科学引文数据库的历史沿革
南师大图书馆数据库
重庆it软件开发外包
北京国家网络安全核心区
网民遭遇网络安全问题数据
数据库技术与应用怎么过
数据库安装时弹出
嵌入软件开发语言
眼镜行业软件开发有什么用
网络安全500字左右作文真实
网络安全每几年进行
中国联通网络技术学院招聘
网络安全宣传教育板报
济南蹦迪网络技术有限公司
酷酷录像软件开发
周口软件开发应用范围
编辑vba宏将送货单到数据库
万兴科技互联网安全
公安机关网络安全责任书范本
网络安全培训16949
网络技术专业的高技学校
数据库字段加版本号解决