科研论文配图绘制指南-Task01( 二 )


总之,这段代码的作用是在图表中为每个类型(A、B、C、D)的数据点绘制误差线和散点,并根据不同类型使用不同的颜色进行标记 。这样可以通过图表更清楚地展示每个类型的数据分布和差异 。
ax.() 是用于在图表上添加图例()的方法 。图例是用来解释图表中不同元素的标识的,例如不同数据系列或不同颜色的含义 。这个方法的参数允许你设置图例的各种属性,来定制图例的外观和位置 。下面是对这些参数的解释:
通过调用 ax.() 方法并传递这些参数,你可以在图表的指定位置添加一个图例,以便于读者理解图表中不同元素的含义 。
1.2.1 RGB色彩模式
源代码:
import numpy as npimport pandas as pdimport seaborn as snsimport proplot as ppltimport matplotlib.pyplot as pltfrom mpl_toolkits.mplot3d import Axes3D# 配置一些图表样式from proplot import rcrc["axes.labelsize"] = 12rc['tick.labelsize'] = 10rc["suptitle.size"] = 15rc["xtick.major.pad"] = 0.5rc["xtick.minor.visible"] = Falserc["ytick.minor.visible"] = Falserc["font.family"] = "Times New Roman"# 定义一个函数用于计算中点def midpoints(x):sl = ()for i in range(x.ndim):x = (x[sl + np.index_exp[:-1]] + x[sl + np.index_exp[1:]]) / 2.0sl += np.index_exp[:]return x# 准备一些坐标,并为每个坐标附加 RGB 值r, g, b = np.indices((17, 17, 17)) / 16.0rc = midpoints(r)gc = midpoints(g)bc = midpoints(b)sphere = rc > -1# 创建一个球体,用于选择绘制的区域# 组合颜色分量colors = np.zeros(sphere.shape + (3,))colors[..., 0] = rccolors[..., 1] = gccolors[..., 2] = bc# 绘制图表fig = plt.figure(figsize=(5, 4), dpi=100, facecolor="w")ax = fig.add_subplot(projection='3d')ax.voxels(r, g, b, sphere,facecolors=colors,edgecolors="none",# 无边框linewidth=0.3,shade=False)# 不使用阴影# 设置坐标轴样式ax.xaxis.pane.set_color("none")ax.yaxis.pane.set_color("none")ax.zaxis.pane.set_color("none")ax.xaxis._axinfo["grid"].update({"linewidth": 0.3, "color": "none"})ax.yaxis._axinfo["grid"].update({"linewidth": 0.3, "color": "none"})ax.zaxis._axinfo["grid"].update({"linewidth": 0.3, "color": "none"})ax.view_init(elev=20, azim=20)# 设置视角ax.set(xlabel='R', ylabel='G', zlabel='B')# 设置坐标轴标签ax.set_axis_off()# 关闭坐标轴fig.tight_layout()# 调整布局# 保存图像(注释掉了保存命令)#fig.save(r"\第1章 科研论文配图的绘制与配色基础\\图1-2-1 RGB色彩模式示意图_b.svg")#plt.save(r"\第1章 科研论文配图的绘制与配色基础\\图1-2-1 RGB色彩模式示意图_b.svg")plt.show()# 显示图像
输出效果:
这段代码是用于绘制一个 RGB 色彩模式示意图的脚本 。它使用了多个绘图库,包括 numpy、、、 和 ,以及 . 中的类,用于创建一个 3D 图形 。
函数用于计算给定数组 x 中相邻元素的中点 。这个函数可以处理多维数组,并通过递归方式计算每个维度上的中点,最终返回一个包含中点的数组 。
def midpoints(x):sl = ()# 定义一个空元组,用于记录切片索引for i in range(x.ndim):# 循环遍历数组的每个维度x = (x[sl + np.index_exp[:-1]] + x[sl + np.index_exp[1:]]) / 2.0# 利用 np.index_exp 创建切片索引,通过切片计算相邻元素的中点sl += np.index_exp[:]# 将当前维度的切片索引添加到 sl 中return x# 返回计算得到的中点数组
【科研论文配图绘制指南-Task01】这个函数的工作原理是,它从数组的最高维度开始,逐步递归地计算每个维度上的相邻元素的中点 。具体来说,它使用切片索引 np.,通过切片将数组中的相邻元素分别提取出来,然后计算这两个元素的中点,得到一个新的数组 。
例如,如果 x 是一个一维数组 [1, 2, 3, 4, 5],那么在第一次循环中,x 的中点将变为 [1.5, 2.5, 3.5, 4.5] 。在下一次循环中,中点将进一步计算为 [2.0, 3.0, 4.0],依此类推 。最终,函数将返回一个包含所有维度上的相邻元素中点的数组 。