hi,大家好,这是正玮。
终于决定再再次启用这个快被冻结的号,记录下空窗期学习的日常,最近学python数据分析,扣代码较为枯燥,所以想着做做记录,也算是变着法强迫自己多练。
本文图文穿插,阅读时间估摸7分钟。
Python,可谓现在最火的语言了,大到开发,小到画图,都离不开它的身影。
所以趁这次空窗期,就赶紧报班操练起来。
这两周前半段学习python的构成:
今天学习用Matplotlib画图,
跟着老师一步步由浅入深地敲代码,最后看到成果时,很有成就感。
以往,我习惯于Excel的“自动”模式:
1.把数据放进去,
2.插图/选图
3.优化
结束。
后来, 学会了Power BI做更好看的图片,但接触到Python,才发现更为智能化的出图方式——想要啥自己写,
如果接触数据成千上万的话,用编程可以大幅减少重复和无效劳动时间。
如果数据少的话,能简单就简单咯,毕竟谁不想做懒人
接下来,就展示下两小时成果:
代码如图,画一个最简单的折线图。
导入matplotlib.pyplot,名称太长可用as赋予它新代号,
%matplotlib inline,出图必写,
.plot和.show分别是画图展示方法,
这样就得到一个基本样式,接着进行改造。
图还是那图,不过在.plot方法里,我们可以对线条有个性化的定制需求,定制颜色、明度、线条形状和宽度等等:
这时,可能不太容易看出(x,y)对应的坐标,来我们再加上marker一切,调整标记点的大小、颜色、边缘等:
额,无视这个瞎眼配色。
不过,想要更精确地表示标记点的坐标,即数据标签,可以使用for a,b in zip(x,y):和.annotate的方法,对我们折线图添加标签,位置可调,相当方便。
以上是简易模式画图——给定X,Y。那如果数据不给定呢?这就来一段随机,导入随机模块,给x安排从2到26-1,步长2的范围;给y用列表推导式安排一段随机数(random.randint() for i in x),这样每运行一次就能获得一次随机数用来作图。
细心的小伙伴是不是发现横纵坐标不太一样?
没错,我们需要什么样的坐标,写就完了!
x_ticks_label=
y_ticks_label=
这两句实现了控制横纵横纵坐标格式的效果,甚至还可以rotation,360°旋转一下。
随机还可以干嘛呢?
不如,生成一个心电图,嘭嘭嘭
方法还是那么个方法,但品品这图,emmm,这个心跳的主人,怕是心律不齐叭,哈哈哈。
等下,此处还有一个知识点:
--横纵轴和标题的命名--
先从matplotlib导入字体管理
再从字体管理中用.FontProperties(fname=字体路径.ttc)方法,给程序赋个应该用的字体。
然后,再.xlabel/.ylabel/.title('',fontproperties=my_font)分别给横纵轴和标题起个名字。
这样就搞定了一线一图,以此类推一图多线,在上述的基础上,有几条线写几条线即可:
为了区分,除定制线条外,还可以使用.legend加个图示,并放在loc位置。
这样就画完了我们在Excel中点点鼠标键盘就完成的图片。
至此练成python调用matplotlib画图的基础功。
下期更新画别的款式的图~
网友评论