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 安装:
2.3 查看版本: import pandaspandas.__version__ ![]() 2.4 环境: 华为笔记本电脑、深度deepin-linux操作系统、python3.8和微软vscode编辑器。 2.5 资料来源: 2.5.1 代码:
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.linedf.plot.line() #下面这么放,是区别平时我们看到以matplotlib作图为主的代码不同#虽然pandas的内置plot是matplotlib,但是仍需要下面2种方法使其图片显示出来#方法一#import matplotlib.pyplot as plt#plt.show()#方法二import matplotlib.pylab as plpl.show() 3.2.2 图: ![]() 3.3 bar柱状图:垂直柱状图 3.3.1 代码:
3.3.2 图: ![]() bar==默认是vertical bar plot==垂直柱状图 3.4 barh水平柱状图: 3.4.1 代码: #导出模块import pandas as pdimport 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 代码:
3.5.2 图: ![]() 3.6 stackedbar垂直堆砌柱状图: 3.6.1 代码: #导出模块import pandas as pdimport 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 代码:
4.2 图: ![]() 4.3 解决中文办法,代码,推荐这种办法,自己解决中文字体问题: #导出模块import pandas as pdimport 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 官方代码、效果图和问题分析: ![]()
5 饼状图pie: ======== 5.1 代码: #导出模块import pandas as pdimport matplotlib.pyplot as pltdf = 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,默认是Falseplt.show() 5.2 图: ![]() 6 散点图Scatter: ============ 6.1 代码:
6.2 图: ![]() 7 小结: 静态图其实也很重要,在平时的绝大多数人的多数工作中,基本上都是用到静态图,适合学生、老师、工作人员,所以今天重点将pandas的基本绘图法,超级简单,比matplotlib还简单。 其实就是pandas内置matplotlib,调出作图。 ===自己整理并分享出来=== 喜欢的就点赞、评论、关注、转发和收藏。 |
|