欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

我的小白python代码(九)数据绘图

程序员文章站 2022-05-28 22:07:26
...

今天也是没有迟到没有睡觉的一节python课(我觉得这节课如果睡了的话可能就跟不上了……)

讲的内容主要是py绘图

课前先点了一下惰性运算,还是之前的那个函数

def a():
	……
	b():
	……
def b():
	……
a()

这样一个代码块是可以被允许的(在使用函数a之前定义函数b即可)

然后老师分享了一个我知道但是真的(发自内心很赞同的)一个dubugの 办法 (简言之,就是看报错提示 & 善于使用print)第二点的话细讲就是多输出对象/对象的属性/还有利用print判断程序运行的程度(真的超级有用,wjd,加粗了,铭记)

下面是正题,话题转换十分生硬自然

python作为一个神奇的语言,拥有很多库,可以用matplotlib库绘图也可以直接用pandas绘图(当然这是后话)

首先是matplotlib绘图,先载入,也就是 import matplotlib.pyplot as plt

载入之后就可以创建图片直接开始绘图了
也就是说 = 》

fig = plt.figure()
ax = fig.add_subplot(1,1,1)
ax.plot(np.arange(10))
fig.show()

但是这个我在实验课上自己操作的时候出现了一点问题,使用show方法运行代码的话得到的t绘图一闪而过,只留下一道潇洒的瞬间,不留痕迹。(解决办法:传送门

继续,完了之后画出来的图片以及相应解释如下所示:
我的小白python代码(九)数据绘图
所以得到了参数解释的话,我们就可以在fig上面建立很多个subplot,而且还智能排序,这就很方便(个人觉得)

还可以对subplot的间距进行手动调整,fig.subplots_adjust(wspace=0.5),py给你留了很多参数接口(用不用都在那里,比如 left/right/bottom/hspace/wspace等等)

除了折线图ax.plot()之外还有很多其他图,比如柱形图ax.hist()散点图ax.scatter()

以折线图为例子可以设置的参数有 线型、颜色、点标志等等举个栗子:ax.plot(random(50),cumsum(),linestyle='--',color='g',maker='o'顺带颜色的话可以设置成RGB格式

还有一种快捷方式对应上面的写法就是ax.plot(random(50),cumsum(),'go--')

然后还可以自定义坐标轴范围 比如,ax.set_xlim([0,100])y轴的话就是ax.set_ylim([-1,1])

设置标题标签 比如ax1.set_title(fig 1‘) 设置轴标签 比如ax1.set_xlabel('Step') ax1.set_ylabel('Value')

设置具体刻度比如ticks = ax1.set_xticks([0,20,40,60,80,100])还有设置刻度标签 比如 labels = ax1.set_xticklabels([‘zero’, ‘one’, ‘two’, ‘three’, ‘four’, ‘five’], rotation = 30)

还可以添加别的一些形状 比如长方形 rect = plt.Rectangle((0.2,0.75), 0.4, 0.15, color = ‘g’, alpha = 0.2) 然后可以通过add_patch方法加到fig里面去 ax.add_patch(rect)

然后还有保存图片的操作 这里用保存成svg矢量图格式举例fig.savefig(‘xxx.svg’, dpi = 400, bbox_inches = ‘tight’)(讲到这里老师讲了很多关于矢量图和位图的知识,还在电脑上用Photoshop花了一个半矢量性质的位图文件大概是这个样子,讲人话就是利用贝塞尔曲线画了一个♥,大概是这样↓)
我的小白python代码(九)数据绘图
言归正传,讲一下py绘图的有点,总结起来就是两点,第一就是准确性高(画的比较精准;第二就是画多张图片容易对齐

终于,讲到pandas绘图了其实老师也没有细讲,这里就放个例子好了(自行领会:

from pandas import  Series, DataFrame
import pandas as pd
df = DataFrame(randn(10,4).cumsum(0), columns = [‘A’, ‘B’, ‘C’, ‘D’], index = np.arrange(0,100,10))
df.plot()

课程内容结束,祝各位在py绘图的道路上越走越远