美文网首页
2019-12-07

2019-12-07

作者: 刘正玮 | 来源:发表于2019-12-07 00:00 被阅读0次

    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画图的基础功。

    下期更新画别的款式的图~

    相关文章

      网友评论

          本文标题:2019-12-07

          本文链接:https://www.haomeiwen.com/subject/bzyygctx.html