跟着顶刊学科研绘图——nature配色篇(二)

只有朝着100分学习,才能想出80分的想法,交出60分的答卷。

今日继续一起跟着nature培养科研绘图配色的美感。

双色对比

请添加图片描述

请添加图片描述
请添加图片描述
这张图也是我个人比较喜欢的一对配色

三色对比

请添加图片描述

四色对比

请添加图片描述

今日收获

昨天说顶刊更加喜欢马卡龙配色,今天又打破了这一认知。整体来说配色具有科技感,对比足够明显但又不失美观,多用红/蓝进行对比即可。

参考文献

[1] Wang, S., DeLeon, C., Sun, W. et al. Alternative splicing of latrophilin-3 controls synapse formation. Nature (2024). https://doi.org/10.1038/s41586-023-06913-9
[2] Li, Y., Zhang, F., Ha, VA. et al. Tuning commensurability in twisted van der Waals bilayers. Nature 625, 494–499 (2024). https://doi.org/10.1038/s41586-023-06904-w

关注公众号“魔方科研”,及时获取最新更新信息~
请添加图片描述

### 如何使用 Matplotlib 和 NATURE 配色方案绘制神经网络 为了实现具有《自然》(Nature)期刊风格配色方案的神经网络图,可以采用 Python 的 `matplotlib` 库来完成。具体来说,可以通过自定义颜色映射表并应用到绘图命令中。 Matplotlib 提供了多种内置的颜色映射选项,但对于特定出版物如 Nature 所需的独特色彩搭配,则可能需要手动设置颜色列表或查找预设的主题样式文件[^1]。下面是一个简单的例子展示如何创建一个带有指定颜色集的神经元连接图表: ```python import numpy as np import matplotlib.pyplot as plt from matplotlib.colors import ListedColormap def draw_neural_net(ax, layer_sizes): ''' Draw a neural network cartoon using matplotilb. :usage: >>> fig = plt.figure(figsize=(12, 12)) >>> draw_neural_net(fig.gca(), [4, 7, 2]) :parameters: - ax : axes object The axes that the plot will be drawn on - layer_sizes : list of int List containing number of nodes in each hidden layer Note: This function is adapted from an example by Nicolas P. Rougier at http://www.labri.fr/perso/nrougier/teaching/matplotlib/ ''' # Define custom color map based on nature style colors nature_colors = ["#E69F00", "#56B4E9", "#009E73", "#F0E442", "#D55E00", "#CC79A7"] cmap = ListedColormap(nature_colors) v_spacing = (ax.get_ylim()[1]-ax.get_ylim()[0])/float(max(layer_sizes)) h_spacing = (ax.get_xlim()[1]-ax.get_xlim()[0])/(len(layer_sizes)-1.) # Nodes for n, layer_size in enumerate(layer_sizes): layer_top = v_spacing*(layer_size - 1)/2. + (.5*v_spacing) for m in range(layer_size): circle = plt.Circle((n*h_spacing + .5,h_spacing*layer_top - m*v_spacing), v_spacing/4., color=cmap(m % len(cmap.colors)), ec='k', zorder=4) ax.add_artist(circle) # Edges for n, (layer_size_a, layer_size_b) in enumerate(zip(layer_sizes[:-1], layer_sizes[1:])): layer_top_a = v_spacing*(layer_size_a - 1)/2. + (.5*v_spacing) layer_top_b = v_spacing*(layer_size_b - 1)/2. + (.5*v_spacing) for m in range(layer_size_a): for o in range(layer_size_b): line = plt.Line2D([n*h_spacing + .5, (n + 1)*h_spacing + .5], [layer_top_a - m*v_spacing, layer_top_b - o*v_spacing], c="grey") ax.add_artist(line) fig = plt.figure(figsize=(8, 8)) ax = fig.gca() draw_neural_net(ax, [4, 7, 2]) plt.axis('off') plt.show() ``` 此代码片段展示了如何通过定义一组代表性的颜色值,并将其应用于节点填充颜色上,从而模拟出类似于《自然》杂志中的视觉效果。当然,在实际操作过程中还可以进一步调整线条粗细、字体大小以及其他美属性以更好地匹配目标期刊的要求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值