机器学习初学者 04月25日 13:37
【Python】轻松搞定三元相图
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文介绍了三元相图这一用于表征三组分体系在特定条件下相平衡关系的直观图形工具。三元相图以等边三角形为框架,顶点代表纯组分,内部点代表不同组分比例。文章通过展示核心代码,演示了如何利用Python绘制简单、注释型以及可交互的三元相图,并详细说明了如何个性化设置轴标签和刻度,以及如何根据相类型着色和熔点调整点大小,从而实现对复杂体系相行为的清晰可视化。

📊 三元相图是一种用于表示三个组分体系在特定条件下的相平衡关系的图形工具,它使用等边三角形作为框架,顶点代表纯组分,内部的点代表三组分的不同比例组合。

🎨 通过Python代码,可以实现三元相图的绘制,包括简单三元相图、注释三元相图以及可交互三元相图。代码中,通过调整颜色、大小、透明度等参数,可以突出显示不同相的特征。

🏷️ 可以对三元相图进行个性化设置,例如设置轴标签和刻度,使其更易于理解和分析。同时,可以根据相类型对数据点进行着色,并根据熔点调整点的大小,从而在图表中呈现更多信息。

✨ 可交互式三元相图允许用户通过交互操作探索数据,例如缩放、平移和选择数据点,从而更深入地了解三元体系的相平衡关系。

pythonic生物人 2025-04-25 12:01 浙江

三元相图(Ternary Phase Diagram)是一种简明直观的图形工具,用于表征三个组分体系在特定条件(如温度或压力)下的相平衡关系。其以等边三角形为框架,各顶点分别代表一种纯组分(如A、B、C),三角形内部的点则对应三组分的各种比例组合。

简单三元相图

#  核心代码
for phase, color in zip(['SolidSolution''Precipitate''Mixed'],
                        custom_colors1):
    mask = ternary_data['Phase'] == phase
    ax.scatter(
        ternary_data[mask]['Al'] / 100,  # 归一化到0-1
        ternary_data[mask]['Cu'] / 100,
        ternary_data[mask]['Mg'] / 100,
        c=color,  # 点颜色
        edgecolors='black',  # 点边框
        linewidths=1.0,  # 点边框宽度
        s=ternary_data[mask]['MeltingPoint'] / 500 * 80,  # 点大小
        marker='o',  # 圆形点
        alpha=0.9,  # 透明度
        label=phase_mapping[phase]  # 直接使用中文标签
    )



注释三元相图(添加文本)

# 核心代码

scatter = ax.scatter(ternary_data['Al'] / 60,
                     ternary_data['Cu'] / 60,
                     ternary_data['Mg'] / 60,
                     c=phase_colors,
                     edgecolors='black',
                     linewidths=0.6,
                     s=ternary_data['MeltingPoint'] / 10,
                     alpha=0.9)

# 2 个性化
## 设置轴标签和刻度
ax.set_tlabel('Al (%)',
              fontsize=12,
              fontweight='bold',
              position=(0.90.10.1))
ax.set_llabel('Cu (%)',
              fontsize=12,
              fontweight='bold',
              position=(0.10.90.1))
ax.set_rlabel('Mg (%)',
              fontsize=12,
              fontweight='bold',
              position=(0.10.10.9))


三元相图(可交互)

# 核心代码

# 创建三元相图
fig = px.scatter_ternary(
    ternary_data,
    a="Al",  # 铝含量列
    b="Cu",  # 铜含量列
    c="Mg",  # 镁含量列
    color="Phase",  # 根据相类型着色
    size="MeltingPoint",  # 根据熔点调整点大小
    size_max=15,  # 调整最大点大小
    color_discrete_map={
        "SolidSolution"'#FF6B6B',
        "Precipitate"'#000000',
        "Mixed"'#45B7D1'
    },
    title="可交互三元相图")



-END-



阅读原文

跳转微信打开

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

三元相图 相平衡 Python 数据可视化
相关文章