首页 > 编程知识 正文

python绘制折线图代码,python读取csv画多条折线

时间:2023-05-03 07:15:22 阅读:40702 作者:3751

Python的可视化工具有无数,各有优劣。 介绍一下其中的pylab。 之所以介绍这个,是因为和Matlab有很强的相似度。 如果使用过Matlab,我相信pylab也很快就能使用了。

在简单的plot函数pylab图中,最基本的函数是plot函数。 当然,如果想显示图像,就需要添加show函数。

在python的画中,numpy是一个非常常用的工具,不熟悉的朋友可以参考博主的另一篇博文。 【python】python numpy超实用基础详细教程。

例如:

importpylabimportnumpyasnpif _ name _==' _ main _ ' : x=NP.arange (0,1,0.05 ) y=[I*IforIin]

规定两个序列,只需要两个序列的长度相等,就可以以其中一个序列为横坐标,零一个序列为纵坐标,进行绘制

但是,我们也可以看到这样的照片比较难看,简单朴素。 可以为线条添加一些装饰,包括线条样式、颜色和点型。 只需向plot函数添加参数即可。 此参数使用灵活,特别是可以从下表中的值中进行组合选择。

线型点型(‘b’(蓝色) (-)实线)、’(像素) g ) )绿色) (-)虚线) o ) )圆形)红色) (-. )虚线) )、上三角)、y )黄色

importpylabimportnumpyasnpif _ name _==' _ main _ ' : x=NP.arange (0,1,0.05 ) y=[I*IforIin]

如果要增加图例,还可以通过添加函数来提供x轴、y轴的含义、刻度和标题信息。

例如:

#--编码3360 utf-8-- importpylabimportnumpyasnpif _ _ name _=' _ _ main _ _ ' 3360 x=NP.arange (0.05 ) pppy y轴介绍pylab.ylabel ) ' y ' ) (pylabel ) ),y轴介绍1 ) py lab.x ticks (NP.arange (0,1,0.05 ),fontsize=8) # x, 0.05 ),fontsize=8) pylab.title(x-y ) ) x,y的标题pylab.legend ) loc=3,borderaxespad=0.box _ to _ ancad

不是一下子富裕起来了吗!

折线绘制当然需要在很多时候绘制多条折线。 很明显,您可以选择在同一张图像上绘制多条直线,也可以在图像上绘制不同的子图。

多段线和该图在同一图像中绘制多条多段线。 这非常简单,直接打印直线就可以了。

例如:

#--编码3360 utf-8-- importpylabimportnumpyasnpif _ _ name _=' _ _ main _ _ ' 3360 x=NP.arange (0.05 ) yame label='line1' ) pylab.plot ) x label='line2' ) pylab.xlabel(x ) pylab.ylabel ) y ) py lab.xlim ([ 0,1 ] ) PP

bbox_to_anchor=(0, 0)) pylab.show()

运行生成的图片为:

多折线不同图

将多条折线绘制到图片上的不同子图上,这就需要通过subplot进行区域分割和指定。

subplot(numRows, numCols, plotNum)

该函数会将这个图片分为numRows行、nulCols列,然后按照从左到右、从上到下的顺序进行编号,最左上的编号为1。plotNum参数指定子图的所在区域

例如:

# -*- coding:UTF-8 -*-import pylabimport numpy as npif __name__ == "__main__": x = np.arange(0, 1, 0.05) y1 = [i*i for i in np.arange(0, 1, 0.05)] y2 = [i+i for i in np.arange(0, 1, 0.05)] pylab.subplot(1, 2, 1) pylab.plot(x, y1, "b-.+", label='line1') pylab.xlabel('x') pylab.ylabel('y1') pylab.xlim([0, 1]) pylab.ylim([0, 1]) pylab.xticks(np.arange(0, 1, 0.05), fontsize=8) pylab.yticks(np.arange(0, 1, 0.05), fontsize=8) pylab.title('x-y1') pylab.legend(loc=3, borderaxespad=0., bbox_to_anchor=(0, 0)) pylab.subplot(1, 2, 2) pylab.plot(x, y2, "r-.+", label='line2') pylab.xlabel('x') pylab.ylabel('y2') pylab.xlim([0, 1]) pylab.ylim([0, 1]) pylab.xticks(np.arange(0, 1, 0.05), fontsize=8) pylab.yticks(np.arange(0, 1, 0.05), fontsize=8) pylab.title('x-y2') pylab.legend(loc=3, borderaxespad=0., bbox_to_anchor=(0, 0)) pylab.show()

运行生成的图片为:

这是比较规整的例子,如果是不规整的呢?例如,第一行两张图,第二行一张图。这就要稍微变通一下了。

第一行其实是按照2*2分法的第一个和第二个,第二行其实是按照2*1分法的第二行。这样思考就会迎刃而解了。

# -*- coding:UTF-8 -*-import pylabimport numpy as npif __name__ == "__main__": x = np.arange(0, 1, 0.05) y1 = [i*i for i in np.arange(0, 1, 0.05)] y2 = [i+i for i in np.arange(0, 1, 0.05)] pylab.subplot(2, 2, 1) pylab.plot(x, y1, "b-.+", label='line1') pylab.xlabel('x') pylab.ylabel('y1') pylab.xlim([0, 1]) pylab.ylim([0, 1]) pylab.xticks(np.arange(0, 1, 0.05), fontsize=8) pylab.yticks(np.arange(0, 1, 0.05), fontsize=8) pylab.title('x-y1') pylab.legend(loc=3, borderaxespad=0., bbox_to_anchor=(0, 0)) pylab.subplot(2, 2, 2) pylab.plot(x, y2, "r-.+", label='line2') pylab.xlabel('x') pylab.ylabel('y2') pylab.xlim([0, 1]) pylab.ylim([0, 1]) pylab.xticks(np.arange(0, 1, 0.05), fontsize=8) pylab.yticks(np.arange(0, 1, 0.05), fontsize=8) pylab.title('x-y2') pylab.legend(loc=3, borderaxespad=0., bbox_to_anchor=(0, 0)) pylab.subplot(2, 1, 2) pylab.plot(x, y1, "b-.+", label='line1') pylab.plot(x, y2, "r-.+", label='line2') pylab.xlabel('x') pylab.ylabel('y') pylab.xlim([0, 1]) pylab.ylim([0, 1]) pylab.xticks(np.arange(0, 1, 0.05), fontsize=8) pylab.yticks(np.arange(0, 1, 0.05), fontsize=8) pylab.title('x-y') pylab.legend(loc=3, borderaxespad=0., bbox_to_anchor=(0, 0)) pylab.show()

运行生成的图片为:


其他函数

除了上述函数之外,还有一些其他的常用函数。

pylab.grid() # 网格绘制pylab.savefig(图片存储路径, dpi=200) # 保存为图片

掌握了这些基本的折现图的绘制函数,相信一般的折线图都可以轻松掌握。


相关阅读

matplotlib 使用

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。