收藏如何利用python画出令编辑眼前一亮的论文图片(一)

作为举例,小编拿出以前从期刊中保存的相对比较复杂的一副图片,带领大家利用python去重复整个过程。

本次选取的图片和复制出来的图片如下图,其中上图是从某期刊中截取的一幅比较典型的科研论文数据图,下边的图是用python在jupyternotebook里面重复出来的示意图,由于小编不可能有图片原来的实验数据,只能通过线型自己构造一些数据以供展示。可以看到,除了一些字体,颜色和图片的大小等需要仔细调整的地方,我们比较完美的还原了左边的数据图。下面,就让我们一步一步的跟随小编,看这幅图是如何被重构出来的。

本次示例只需要用到numpy和matplotlib两个python库,需要提前导入

由于没有真实的实验数据,小编根据图中情况自己构造了一些数据

得到了初始的图片

这个图片看起来和我们想要的相差很大,没有关系,matplotlib是一个非常强大的绘图库,让我们一点一点地去改进我们的图片

plt.xlim()和plt.ylim()语句可以让我们改变x坐标轴和y坐标轴的范围

ax是我们前面命名的一个画板对象的名字,如果需要改变坐标轴的刻度,可以通过ax.setxticks()设定x轴的刻度值,同时matplotlib允许我们通过tickparams()方法改变刻度值的一些属性,例如刻度值的朝向,颜色,长度和粗细等。

ax.plot()里面的color参数可以指定所画图线的颜色,颜色可以用0-1范围内的RGB值来确定。有的时候我们不能确定一个图线用什么样的颜色更协调,这时我们可以去观摩别的优秀期刊上面的图片的配色,然后用取色器拾取其颜色,用在我们的图片中。

matplotlib可以嵌入latex公式,只需要在r'$$'的两个$符号中间写入latex代码就可以。这样我们可以很方便的在图片的图例、坐标轴名称等地方嵌入latex公式

到此为止,我们的主图已经描绘的差不多了

接下来需要的就是分别按照上面描述的方法,把两个子图分别画出来

在绘制子图的过程中,我们用ax1.setxticklabels()来设定刻度值的内容,刻度值并不一定显示实际的数值,而可以显示字符串样式的内容。这样就方便了我们自定义一些非常规的坐标刻度值。同时,我们用ax_1.text()来自定义一些图片内的文字。

与子图一的绘制相似,子图二的绘制也比较简单。

在将三幅图结合为一幅图的过程中,我们使用fig.add_axes()命令来为图片添加子图,其中该方法中的四个参数分别是该子图的两个起始地点和宽、高度。通过调整这四个参数我们可以让子图到达我们想要的位置。

最终的效果图如图所示。

但同时,这种自定义太强的功能也给我们带来很多困扰,哪怕我们只想实现一个比较简单的功能,如果对matplotlib这个库不是那么熟悉的话,也需要查找半天。而如果画图者本人没有很高的审美的话,就很容易画出一些看上去不是很协调的图片。好在世界上同样有人想到了这一点,他们开发出了plotly这一个能很方便的画出非常美观图形的库和mpltex这个号称可以画出出版社级别图片的库,这两个功能强大的库我们将于接下来的系列教程中予以介绍~

THE END
1.26绘制棒棒糖Python Turtle绘图:甜美棒棒糖(基础效果 / 加描边优化)【难度2星】 案例: 棒棒糖(基础效果) 难度:★★☆☆☆【重难点突破】 画棒棒糖的难点是画圆形糖中间的圆形螺旋线,所以建议大家不要急于复制代码直接去画整体的棒棒糖,而是要静下心来先单独研究圆形螺旋线的绘制方法。 画圆形螺旋线的方法: 持续增加半径画圆弧...http://x.linyiwang.cn/@python/26huizhibangbangtang.html
2.Python气象数据处理与绘图(7):站点气象数据绘图(散点图)站点数据也是气象数据很重要的一部分,尤其是在观测数据方面,站点数据一般存放于.txt(.csv)文件中,在"Python气象数据处理与绘图(1):数据读取"中提到过这类文件的读取,那么今天以一个例子再重新复习一哈。 首先我们先去读站点信息文件"SURF_CLI_CHN_TEM_station.txt" ...https://www.jianshu.com/p/2083fac7f2ce
1.python如何实现缩放画图python如何实现缩放画图 目录 问题描述: 问题解决: 问题描述: 在画图的时候,性能提升幅度不一样,如何通过画图,体现性能提升的幅度均比较明显? 则需要通过按照不同比例进行缩放,从而实现目的。 importmatplotlib.pyplotasplt importpdb importcsv importjson frommatplotlib.tickerimportMultipleLocator, AutoLocator, ...https://blog.csdn.net/weixin_41862755/article/details/144060179
2.python中怎么设置线条粗细python画图线条粗细python中怎么设置线条粗细 python画图线条粗细 1.绘制简单的折线图 采用matplotlib工具 #简单的折线图演示 import matplotlib.pyplot as plt #导入模块pyplot,并指定其名plt import matplotlib matplotlib.use('TkAgg') #修改渲染器,保证图片可以正常绘出 matplotlib.rc("font", family='SimHei') #设置字体,防止出现...https://blog.51cto.com/u_16213664/11180609
3.Python直接使用plot()函数画图的方法实例python在使用Python进行数据可视化编程中matplotlib库是我们用来对数据进行画图常用的第三方库。其中含有各类函数也就是不同类型的图形,要使用matplotlib库中的函数就需要了解函数所需要数据的格式,这也是我们学习matplotlib库的重点。 直接使用plot()函数画图,是对于一般的简单数据。我们可以采用直接调用plot()函数对列表数据进行直...https://m.jb51.net/article/247129.htm
4.OpenCV学会使用 cv.line 绘制一条线; 学会使用 cv.circle 绘制圆; 学会使用 cv.rectangle 绘矩形; 学会使用 cv.ellipse 绘椭圆。 2. 图像公共参数说明 2.1 参数说明 参数 说明 img 表示输入图像,允许单通道灰度图像或多通道彩色图像。 color 表示绘制直线的颜色,(b,g,r) 格式的元组,或者表示灰度值的标量。 thickne...https://cloud.tencent.com/developer/article/2153212
5.24.1.turtle—海龟绘图—Python3.6.15文档画笔落下 – 移动时将画线。 turtle.penup() turtle.pu() turtle.up() 画笔抬起 – 移动时不画线。 turtle.pensize(width=None) turtle.width(width=None) 参数 width– 一个正数值 设置线条的粗细为 width 或返回该值。如果 resizemode 设为 “auto” 并且 turtleshape 为多边形,该多边形也以同样组细的...https://docs.python.org/zh-cn/3.6/library/turtle.html