Python可视化,matplotlib最佳入门练习( 二 )


看看这个 axes 有什么可以让我们操作的:
Python可视化,matplotlib最佳入门练习文章插图

  • 行1:直线 plt.setp(对象) , 可以查看对象有哪些可以设置的属性
  • plt.setp 本身是一种批量修改值的快捷方法
看了一下 , 找到我们的目标:
Python可视化,matplotlib最佳入门练习文章插图
怎么获取 , 非常简单:
Python可视化,matplotlib最佳入门练习文章插图
  • 前缀+下划线+属性名就能调用
"但是我们需要设置的是这些刻度标签的角度 , 拿一堆刻度标签有啥用?"
显然 , 调整角度是需要设置这些"刻度标签"对象的某个属性 , 按照之前的方法 , 查看一下:
Python可视化,matplotlib最佳入门练习文章插图
  • axes.get_xticklabels()[0], 随意拿出第一个刻度标签对象 , 看看他里面有啥玩意
果然 , 找到需要的属性:
Python可视化,matplotlib最佳入门练习文章插图
万事俱备了:
Python可视化,matplotlib最佳入门练习文章插图
  • 行5:从 axes 中获取所有 x 轴的刻度标签 , 注意这是一个 list
  • 行6: plt.setp 能批量对多个东西设置属性 , 显然我们这里需要对前一行得到的多个刻度标签设置 rotation 为 90 度
图表成这样子:
Python可视化,matplotlib最佳入门练习文章插图
"好像没多大改善呀"
这是因为我们的"图纸"不够宽 , 空间有限 , 自然要压缩"图纸"中的内容 。
适当调整"图纸"的大小:
Python可视化,matplotlib最佳入门练习文章插图
  • 行3:传入相应参数即可
现在效果如下:
Python可视化,matplotlib最佳入门练习文章插图
"我怎么知道这个 subplots 方法中可以设置这个参数?"
这需要查看他的文档 , 但是 , 之前我们已经学过查看某个东西可以调整的属性 。
我们可以换另一种方式实现一样的效果 。
用 plt.setp 方式 , 找到属性 figwidth, 显然这是"图纸"的宽度 , 于是可以这么写:
Python可视化,matplotlib最佳入门练习文章插图
  • 行4: set_figwidth 即可设置
  • 怎么设置高度 , 不用我教了吧
做到这里 , 你应该会觉得任意使用一个可视化的库 , 可能1、2行代码即可完成 , 为啥要折腾这么多?
matplotlib 的灵活在于控制细节 。
现在剩下如何把最小与最大值的柱子标记不同颜色
设置颜色面向对象设计 , 意味着图表上你能看到的东西基本上都有一种对象代表他 。
现在我们需要找到图表生成的每个柱子 。 他们在哪里?
原来 , 本身当我们调用 axes.bar 方法时 , 这个方法返回的就是这些小柱子:
Python可视化,matplotlib最佳入门练习文章插图
显然 , 这是一个集合 , 我们需要修改其中的某几个柱子的颜色 , 老规矩查到属性:
Python可视化,matplotlib最佳入门练习文章插图
现在只需要找到哪个是最小和最大值的柱子就行了:


推荐阅读