范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

Python的利器Pandas库超级简单的数据可视化作图,你知道吗?

  1 说明:
  =====
  1.1 Pandas
  1.1.1 已经成为最受欢迎的数据科学库之一。
  1.1.2 它易于使用,文档非常棒,而且功能强大。
  1.1.3 是python的一个利器,一个非常强大的数据分析工具包。
  1.1.4 pandas也集成了数据可视化的功能,其数据可视化已经可以满足我们大部分的要求了,也就省下了我们很多自己使用 如 matplotlib 来数据可视化的工作。
  ======
  1.2 我最近一直介绍各种各样的python的数据可视化作图,有静态的,也有动态交互式的,有个条友说他曾经折腾来折腾去还是回到matplotlib,我的介绍技术文章,尽量通俗易懂,我的代码拿来就可以使用,省去大家很多时间。
  1.3 今天,就来介绍一个更简单的python的数据可视化静态作图,就是pandas的内置plot法(其实就是内置了matplotlib)。
  1.4 顺带复习python和pandas等的基础知识,代码注释里有详细讲解,注意这是讲解学习版。
  python数据可视化:由繁入简
  2 准备:
  =====
  2.1 官网:https://pandas.pydata.org/ https://www.yiibai.com/pandas/python_pandas_visualization.html
  2.2 安装:pip install pandas #推荐国内源安装,本机如下 sudo pip3.8 install -i https://mirrors.aliyun.com/pypi/simple pandas
  2.3 查看版本:import pandas pandas.__version__
  2.4 环境:
  华为笔记本电脑、深度deepin-linux操作系统、python3.8和微软vscode编辑器。
  2.5 资料来源:
  2.5.1 代码:import pandas as pd help(pd.DataFrame.plot)
  2.5.2 图:
  2.5.3 对英文的文档进行代码提炼、修改、注释,便于大家拿来就能使用。
  3 pandas内置plot作图:
  ================
  3.1 通常使用 pandas 进行下列的图形的快速绘图:
  =======================
  ‘line’
  ‘bar’ or ‘barh’ for bar plots
  ‘hist’ for histogram
  ‘box’ for boxplot
  ‘area’ for area plots
  ‘scatter’ for scatter plots
  ‘pie’ for pie plots
  =====================
  3.2 line折线图:
  3.2.1 代码:#导出模块 import pandas as pd #数据源,2组数据 d = {"col1": [2,1,3,5,3],       "col2": [3,4,1,5,2]     } #df = pd.DataFrame(data=d)  #默认x轴坐标轴的标签 #指定x坐标轴的标签:index定义 df = pd.DataFrame(data=d,index=["a", "b", "c", "d","e"])  #只显示col1的这条折线line #df = pd.DataFrame(data=d,index=["a", "b", "c", "d","e"],columns=["col1"]) #df.plot()  #默认是plot.line df.plot.line()  #下面这么放,是区别平时我们看到以matplotlib作图为主的代码不同 #虽然pandas的内置plot是matplotlib,但是仍需要下面2种方法使其图片显示出来 #方法一 #import matplotlib.pyplot as plt #plt.show() #方法二 import matplotlib.pylab as pl pl.show()
  3.2.2 图:
  3.3 bar柱状图:垂直柱状图
  3.3.1 代码:#导出模块 import pandas as pd #数据源,2组数据 d = {"col1": [2,1,3,5,3],       "col2": [3,4,1,5,2]     } #指定x坐标轴的标签:index定义 df = pd.DataFrame(data=d,index=["dog", "pig", "cow", "sheep","horse"],)  #默认显示2组 #df = pd.DataFrame(data=d,columns=["col1", "col2"])  #df = pd.DataFrame(data=d,) #等同上面 #subplots=True,分子图显示,2组就分2个子图 #df.plot.bar(subplots=True) #比matplotlib超级简单 df.plot.bar() #默认是一张图显示2组 #在这样放一次 import matplotlib.pyplot as plt plt.show()
  3.3.2 图:
  bar==默认是vertical bar plot==垂直柱状图
  3.4 barh水平柱状图:
  3.4.1 代码:#导出模块 import pandas as pd import matplotlib.pyplot as plt  """ #数据源:方法一 d = {"a": [2,1,3,5,3],       "b": [3,4,1,5,2],      "c": [1,2,4,2,2]     } #指定x坐标轴的标签:index定义 df = pd.DataFrame(data=d,index=["dog", "pig", "cow", "sheep","horse"])  """  #方法二: df = pd.DataFrame(    {"a": [2,1,3,5,3],       "b": [3,4,1,5,2],      "c": [1,2,4,2,2],    },    index=["dog", "pig", "cow", "sheep","horse"]) #启动pandas的df的plot的barh图 df.plot.barh() #barh==horizontal bar plot==水平柱状图 #图片展示 plt.show()
  3.4.2 图:
  3.5 box箱式图:
  3.5.1 代码:#导出模块 import pandas as pd import matplotlib.pyplot as plt #方法一 d= {"a": [2,1,3,5,3,3,4,1,5,2],       "b": [3,4,1,5,2,1,2,4,2,2],      "c": [1,2,4,2,2,3,1,5,3,4],      "d": [3,1,5,3,4,2,1,3,5,3],} df=pd.DataFrame(data=d,)  """ #建议数据大于4组10列 df = pd.DataFrame(    {"a": [2,1,3,5,3,3,4,1,5,2],       "b": [3,4,1,5,2,1,2,4,2,2],      "c": [1,2,4,2,2,3,1,5,3,4],      "d": [3,1,5,3,4,2,1,3,5,3],    #},columns=list("abcd"))  #注意已经有abcd了,所以columns=list("abcd")不需要    }) #等同于上面 """ #ax = df.plot.box() df.plot.box() #等于上面,box=箱式图 #图片展示 plt.show()
  3.5.2 图:
  3.6 stackedbar垂直堆砌柱状图:
  3.6.1 代码:#导出模块 import pandas as pd import matplotlib.pyplot as plt #数据 d= {"a": [2,1,3,5,3,3,4,1,5,2],       "b": [3,4,1,5,2,1,2,4,2,2],      "c": [1,2,4,2,2,3,1,5,3,4],      "d": [3,1,5,3,4,2,1,3,5,3],} #注意:index是x坐标轴的标签,注意list("ABCDEFGHIJ")=["A", "B", "C", "D", "E", "F", "G", "H", "I", "J"]  """ #插入知识点:复习一下 aaa=list("ABCDEFGHIJ") df=pd.DataFrame(data=d,index=aaa) #print(aaa) #["A", "B", "C", "D", "E", "F", "G", "H", "I", "J"] """  df=pd.DataFrame(data=d,index=list("ABCDEFGHIJ")) #等同于上面 #注意bar是柱状图,括号里定义stacked=True就是垂直堆砌柱状图 #默认stacked=False,不是堆砌柱状图,图标的标题名 df.plot.bar(stacked=True,title="pd_plot_stacked_bar")  #图片展示 plt.show()
  3.6.2 图:
  ===高级一点===
  4 area面积图:
  ==========
  4.1 代码:#导出模块 import pandas as pd import matplotlib.pyplot as plt #数据 df = pd.DataFrame({    "sales": [3, 2, 3, 9, 10, 6],    "signups": [5, 5, 6, 12, 14, 13],    "visits": [20, 42, 28, 62, 81, 50],  },  #index=pd.date_range(start="2018/01/01", end="2018/07/01",freq="M",) ,#这样报错,报中文设置错误 #index=pd.date_range(start="1M", end="7M",freq="M",) ,#这样报错 index=["1M","2M","3M","4M","5M","6M"],  #本机这样没有报错 #index=["1月","2M","3M","4M","5M","6M"],  #本机这样没有报错 )  #ax = df.plot.area() #df.plot.area() df.plot.area(stacked=True,) #默认是True #df.plot.area(stacked=False) #如果数据差别比较大,建议不要堆砌 plt.show()
  4.2 图:
  4.3 解决中文办法,代码,推荐这种办法,自己解决中文字体问题:#导出模块 import pandas as pd import matplotlib.pyplot as plt #导出通用字体设置 from matplotlib import font_manager  #定义引出字体模块、位置、大小,字体在根目录下,华文仿宋.ttf自己下载的中文字体 my_font = font_manager.FontProperties(fname="hwfs.ttf",size=10) #定义x坐标轴的文字列表,python3中不要求加u,加u也没事 xtick_labels=[u"1月","2月","3月","4月","5月","6月"] df = pd.DataFrame({    "sales": [3, 2, 3, 9, 10, 6],    "signups": [5, 5, 6, 12, 14, 13],    "visits": [20, 42, 28, 62, 81, 50],  },  #index=pd.date_range(start="2018/01/01", end="2018/07/01",freq="M",) ,#这样报错,报中文设置错误 index=xtick_labels, ) df.plot.area() #默认的x坐标刻度位置列表 x=[1,2,3,4,5,6] plt.xticks(x,xtick_labels,fontproperties=my_font) plt.show()
  4.4 图:解决中文字体,则需要调用matplotlib的作图法,调动函数
  4.5 官方代码、效果图和问题分析:
  #index=pd.date_range(start="2018/01/01", end="2018/07/01",freq="M",) #print(index) """ DatetimeIndex(["2018-01-31", "2018-02-28", "2018-03-31", "2018-04-30",                "2018-05-31", "2018-06-30"],               dtype="datetime64[ns]", freq="M")  """ #报错原因,我暂时无法解决 """ /usr/local/python3.8/lib/python3.8/site-packages/matplotlib/backends/backend_agg.py:214: RuntimeWarning: Glyph 26376 missing from current font.   font.set_text(s, 0.0, flags=flags) /usr/local/python3.8/lib/python3.8/site-packages/matplotlib/backends/backend_agg.py:183: RuntimeWarning: Glyph 26376 missing from current font.   font.set_text(s, 0, flags=flags) """
  5 饼状图pie:
  ========
  5.1 代码:#导出模块 import pandas as pd import matplotlib.pyplot as plt  df = pd.DataFrame(     {"mass": [0.330, 4.87 , 5.97],      "radius": [2439.7, 6051.8, 6378.1]     },     index=["Mercury", "Venus", "Earth"]     )  #y="mass",相当于饼图的标题名,位于y轴 #plot = df.plot.pie(y="mass", figsize=(5, 5)) #df.plot.pie(y="mass", figsize=(5, 5))  #只显示mass的饼状图 df.plot.pie(subplots=True, figsize=(5, 5)) #显示mass和radius的两个子图的饼状图 #subplots=True,默认是False plt.show()
  5.2 图:
  6 散点图Scatter:
  ============
  6.1 代码:#导出模块 import pandas as pd import matplotlib.pyplot as plt  df = pd.DataFrame(     [[5.1, 3.5, 0], [4.9, 3.0, 0], [7.0, 3.2, 1],[6.4, 3.2, 1], [5.9, 3.0, 2]],     columns=["length", "width", "species"]     )  #经典Scatter散点图 #只能显示2组数据,将x和y轴的2组5份数据进行类似x和y的作图 ax1 = df.plot.scatter(x="length",y="width",c="red")     """ #高级散点图,省略,仅仅给代码 ax2 = df.plot.scatter(x="length",                       y="width",                       c="species",                       colormap="viridis")  """  plt.show()
  6.2 图:
  7 小结:
  静态图其实也很重要,在平时的绝大多数人的多数工作中,基本上都是用到静态图,适合学生、老师、工作人员,所以今天重点将pandas的基本绘图法,超级简单,比matplotlib还简单。
  其实就是pandas内置matplotlib,调出作图。
  ===自己整理并分享出来===
  喜欢的就点赞、评论、关注、转发和收藏。

学会这28句话,10年后孩子最有出息最近看到一段话人生最重要的东西,其实大都没什么用爱情,正义,自由,尊严,文明但这些,才是能与我们一身相守的东西,是生命最重要的存在,会在最灰黯时刻拯救自己。那到底如何才能给予孩子这洗个澡,一家五口中毒身亡1000个和死亡擦肩而过的瞬间冬天最高发的事故什么?你绝对想不到一氧化碳中毒。洗个澡全家灭门?一氧化碳中毒了解一下今天之所以讲一氧化碳中毒,是因为看到这个沉重的新闻这类新闻也许你不是第一次看过,除了心里有点惋惜看完这10个瞬间,我决定原谅这糟糕的2020年2020,终于要过去了。有人说,这一年,太不值得了。是啊,疫情山火洪水地震意外总是来的那么猝不及防,生活更是不尽如人意。无数次想喊一声滚蛋吧,2020!可真正到了这一天,回头看看,这4种情况下,千万别让爸爸亲孩子爸爸,是一种奇怪的生物。你让他带孩子吧,他10分钟就烦。但等你把孩子哄睡着,他又凑上去亲个没完。亲就亲吧,不能容忍的是,他还经常啃孩子一脸口水!说他他还不愿意,但实际上这种亲亲,可妈,我截肢算了孩子总喊痛,可能是被这种病盯上了谁能想到,痛风都开始嚯嚯00后了。前两天看到深圳卫健委发了一个新闻,一个年仅12岁的男孩手脚莫名其妙肿胀,还直呼要截肢,一了百了。孩子爹妈吓傻了,赶紧带娃去医院一查,血尿酸高达83孩子收到10万块压岁钱怎么办?这个爸爸的做法太绝了压岁钱,你们今年收了多少?前几天,一张全国压岁钱地图引发热议,广东又被群嘲了!从图上看,北方人均5001000,东南沿海人均15003000,除了广东!广东以人均50块垫底全国,莆当婆家一直无视你对他们的好,你还会继续好下去吗11年和老公结婚,远嫁,因为爱情,裸嫁,死活都要嫁,爸妈扭不过,出钱给我们拍了婚纱照,给我们办了婚礼,婆家提都不提这事,如果不是爸妈估计这辈子我都没机会穿上婚纱。婚前,爸妈爱我宠我麻辣卤鸡爪,做法简单,配方详细第一步把鸡爪洗干净。第二步鸡爪冷水下锅,加入适量料酒,几片生姜,给鸡爪去味。第三步水开后关火,捞出鸡爪。过一下凉水洗去上面的浮沫,这样吃起来更Q弹更干净。第四步去掉鸡爪的脚趾甲,可全职妈妈,老公工资卡不给你,每月按时转账,你怎么想?我是一个全职妈妈,大宝九岁,二宝还在肚子里,再有两个多月就生了,我已经全职带娃七年了。和老公是自由恋爱,当初嫁给他,没要求他给彩礼,没要求他买三金,没要求他办一个像样的婚礼,更没要东野圭吾书评白夜行ampampamp解忧杂货店看完压抑的不想说话从来没有在白夜行走过的人呐是否会害怕万因皆由欲起吧因为个人名利因为爱不过你们也算有可以为此去搭上命的人或事却仍是压抑解忧杂货店看到最后忍不住落泪只为浪矢杂货店最后红烧排骨这样做简单又好吃,外酥里嫩,汤汁浓郁,上桌就光盘准备材料排骨,姜,蒜,花椒,干辣椒,八角(想加配菜的可以根据可以的喜好来哦)第一步排骨洗净第二步冷水下锅,加入姜片,料酒去腥,煮开捞出洗净沥干水分备用第三步准备配料,蒜切末,姜切末
高考再现作弊事件,躲过监考老师的查验,是科技高还是手段高?高考作为国家最重要的入学考试,一直备受国家和社会的关注,同时高考肩负着为国家挑选栋梁之才的责任,一直秉承着公平公正公开的态度。所以可以说高考是我国众多考试中,最公平的考试,但还是会3种兴趣班费钱还不实用,堪称碎钞机,耽误孩子学习的时间随着人们生活水平不断地提升,现在大多数家长在保证孩子生活质量的同时,开始追求孩子精神上的富足,把自己小时候的理想,寄托在孩子身上。很多90后已经结婚生子,成为了一个孩子的父母,作为2021年高考作文,你觉得做可为之事,成有为青年,做题目如何今天是2021年高考的第一天,全国共8套试卷,分别是全国新高考卷全国新高考卷全国甲卷全国乙卷上海卷天津卷浙江卷北京卷。每年在语文落下帷幕的时候,大家议论最多的就是语文中的作文,其中寥寥几句入党申请,一笔一画写下对党的向往,值得大学生学习2021年7月1日是中国共产党建立100周年的日子,从1921年中国共产党成立至今,从50只有50人的党组织,逐步发展成现在超过8000万党员,历史见证着中国的崛起。从1945年抗研究生毕业后才清楚,专硕与学硕的差距有多大,希望你没选错据统计2021年报考研究生的人数,达到377万人,预计明年会突破400万,同时录取的人数超过30,也就是在3个考研生当中,有一个顺利上岸。随着国家对教育的重视度不断地提高,加上现在毕业在即升本还是工作?专科生陷入迷茫,听听辅导员的建议高考作为一个非常公平的考试,自然有取得优异的成绩,就有成绩不理想的学生,并不是每个学生都能考上本科,还有很多学生只能勉强报一所专科类院校。虽然很多学生因为种种原因,只能上大专,但国大学男生宁愿打游戏,也不追女生是啥原因?这个理由占75要知道学生在中小学时期,是不允许谈恋爱的,并且早恋这件事一直是绝大多数中小学,明令禁止的事情,所以可以光明正大谈恋爱的时期,自然就落在大学。很多老师和家长在教育孩子的时候,都会说等北电素人校花,浓颜系的长相获关注,网友直呼是心动的感觉高考作为我国重要的入学考试,一直备受国家和社会的关注,同时高考也是每个考生人生当中重要的转折点之一,对考生今后的工作和发展都有决定性的影响。对于艺术生而言,高考更加具有挑战,不仅要为什么国企更青睐应届生?面试官说出了原因,让人无法反驳说到铁饭碗大多数人第一个想到的就是公务员,随即就是国企教师事业单位等,这些都是具有代表性的铁饭碗岗位,一直备受大学生们的喜爱。众所周知,铁饭碗众多的岗位工作性质稳定,薪资待遇很高,英语真要退出教育舞台?学生的呼声越来越高,有关部门作出回应相信在绝大多数学生的记忆中,都会有这样的疑问,就是为什么要学习英语?尤其是很多工作后的人,觉得用十几年学习的英语,对未来的工作和生活一点用也没有。众所周知,语文数学英语一直是我国的大学毕业照走红,聚万千宠爱于一身,感觉他们毕了个假业随着生活水平不断地提高,人们对于物质生活的需求变得更大了,不仅要生活得安乐富足,也开始重视生活中的仪式感,这也正是近几年创意毕业照持续走红的原因。又到了一年一度的毕业季,相信现在大