自定义函数,以改善matplotlib绘图的外观,以实现科学可视化。

sciplotlib的Python项目详细描述


sciplotlib公司

sciplotlib只是一组简单的函数和样式表,用于更专业的绘图

nature review style shading scatter

有两个主要特性使图纸中的图看起来和它们一样:

  1. 默认样式属性,例如字体、配色方案
  2. 根据刻度线或添加到绘图中的其他元素(如阴影或阴影)的位置的特定选择

样式表

sciplotlib旨在通过提供旨在模拟科学论文中的样式属性的样式表来简化(1):

我们可以将默认matplotlib样式与模仿Nature publishing group文章中的散点图的样式进行比较:

importmatplotlib.pyplotaspltimportnumpyasnpdefmake_plot():fig,ax=plt.subplots()num_categories=10num_points=10forcategoryinnp.arange(num_categories):x=np.random.normal(size=num_points)y=np.random.normal(size=num_points)ax.scatter(x,y)returnfig,axfig,ax=make_plot()ax.set_title('Default matplotlib style')

default matplotlib scatter

应用最基本的样式只是一行代码

^{pr2}$

basic style

修改地物属性

sciplotlib还旨在通过提供自动添加科学绘图中的元素的函数来简化(2)。例如,在许多科学期刊中,轴通常只从最后一个刻度线延伸到最后一个刻度线,在《自然》评论文章中发现的图形中,阴影也很常见,这些都是通过simpy在图形句柄中获取并返回它们的函数来实现的:

fromsciplotlibimportstyleasspstylefromsciplotlibimportpolishassppolishwithplt.style.context(spstyle.get_style('nature-reviews')):fig,ax=make_plot()fig,ax=sppolish.set_bounds(fig,ax)sppolish.apply_gradient(ax,extent=None,direction=0.3,cmap_range=(0.1,0),cmap='Greys')ax.set_title('Nature reviews style with bells and whistles')

advanced nature reviews style

安装

简单地做

pip install sciplotlib

致谢

sciplotlib构建在matplotlib之上。要在出版物中引用matplotlib,请引用:

J.D.Hunter,“Matplotlib:二维图形环境”,科学与工程计算,第9卷,第3期,第90-95页,2007年

其他基于为科学图提供样式表/包装器的项目包括:

科学论文的调色板来自奇妙的ggsci库:

https://cran.r-project.org/web/packages/ggsci/vignettes/ggsci.html

贡献

如果您有兴趣向此存储库添加新函数或模板,请与我联系。在

其他有趣的东西

我还包括其他审美愉悦的情节风格,是非学术。例如,要从《经济学人》创建图,请执行以下操作:

importnumpyasnpimportmatplotlib.pyplotaspltfromsciplotlibimportstyleasspstylefromsciplotlibimportmiscasspmiswithplt.style.context(spstyle.get_style('economist')):fig,ax=plt.subplots()ax.scatter(x,y)ax.text(0,1.2,'Main title',weight='bold',size=13,transform=ax.transAxes)ax.text(0,1.1,'This is the usual long subtitle',transform=ax.transAxes)fig,ax=spmisc.add_economist_rectangle(fig,ax,xloc=0.125,yloc=1.1,width=0.05,height=0.02)fig,ax=spmisc.add_datasource(fig,ax,s='Source: IMF',xloc=0.125,yloc=0,alpha=0.6)

economist advanced style

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何将cassandra中的行数据转换为与列相关的嵌套json   java如何使用jcr XPath在jcr:content/@jcr:data中搜索?   java在使用openCV进行安卓开发时如何利用手机的广角镜头   java解析扩展了接口,结束了一个潜在的无限循环   位置服务的@Override方法中存在java Android应用程序错误   java本地线程的用途和需求是什么   具有左右子访问的java节点树遍历   java验证JsonWebToken签名   JUL日志处理程序中的java日志记录   嵌入式Java读取给定时间段的串行数据。   java有没有办法从多个URL获取多个图像?   java线程通过等待intent阻止自己发送intent   java Spring MVC解析多部分内容请求   java JPA/Hibernate静态元模型属性未填充NullPointerException   java格式错误的字符(需要引号,得到I)~正在处理   java为什么PrintWriter对象抛出FileNotFoundException?   java Neo4j未正确保存标签   java IE不加载图像