当前位置:首页>python>期刊图片复现|Python绘制高颜值词云图

期刊图片复现|Python绘制高颜值词云图

  • 2026-10-11 06:13:25
期刊图片复现|Python绘制高颜值词云图

代码绘制成果展示

论文:Exploring traveler roles based on potential group travelers extracted from  metro smart card data
论文原图
仿图
多种配色

代码解释

第一部分

库的导入以及字体设置
# =========================================================================================# ====================================== 1. 环境设置 =======================================# =========================================================================================import pandas as pdimport numpy as npimport matplotlib.pyplot as pltfrom wordcloud import WordCloudimport randomimport osimport matplotlib

第二部分

颜色库的设置,配色方案的选择,形状设置
# =========================================================================================# ======================================2.颜色库=======================================# =========================================================================================COLOR_SCHEMES = {    1: ["#4B0082", "#800080", "#FF8C00", "#FFA500", "#00008B", "#C71585"],    60: ["#0b090a", "#161a1d", "#660708", "#a4161a", "#ba181b", "#e5383b"]}SCHEME_ID = 1  #配色方案SHAPE_KEY = 'b'  #设置形状colors = COLOR_SCHEMES.get(SCHEME_ID, COLOR_SCHEMES[1])  #提取配色方案

第三部分

辅助函数设置,用于分配颜色以及生成圆形的蒙版
# =========================================================================================# ======================================3.辅助函数======================================# =========================================================================================def custom_color_func(word, font_size, position, orientation, random_state=None, **kwargs):  # 定义一个自定义的颜色函数,用于生成每个词的颜色    return random.choice(colors)  #从获取到的颜色列表中随机抽取一种颜色,并返回给词云使用def get_mask_from_library(key):  # 定义一个函数,根据传入的标识符生成对应的形状蒙版矩阵    size = 1000  #设定蒙版画布的大小    x, y = np.ogrid[:size, :size]  # 生成用于计算的二维网格坐标系    center = size // 2  #画布的中心点坐标    if key == 'a':  # 方形        return None  # 直接返回    elif key == 'b':  # 圆形        mask = (x - center) ** 2 + (y - center) ** 2 > (size // 2 - 20) ** 2  # 利用圆的几何方程判断当前像素点是否在圆形外部,返回布尔矩阵        return 255 * mask.astype(int)  # 将布尔值转换为整数,并乘以255,使圆外部分白色遮挡,圆内部分放置文字    else:          return None

第四部分

绘图函数,该函数接收词频数据,配置 WordCloud 对象的各项参数(如宽高、蒙版、间距、排版倾向等),然后调用 generate_from_frequencies 生成布局。最后绘制并保存
# =========================================================================================# ======================================4.绘图函数======================================# =========================================================================================def plot_and_save_wordcloud(frequencies, output_name, key='a'):    mask = get_mask_from_library(key)  # 调用上面定义的蒙版函数,获取对应形状的蒙版数据    # 使用字典映射获取形状的英文名称用于文件命名    shape_name = {'a': 'Square',                  'b': 'Circle',                 }.get(key, 'Unknown')    # 将传入的词频字典输入到WordCloud中,生成词云数据    wc.generate_from_frequencies(frequencies)    #创建画布    plt.figure(figsize=(10, 10))    # 在画布上渲染显示词云图像    plt.imshow(wc, interpolation="bilinear")    plt.axis("off")  # 关闭

第五部分

执行部分
# =========================================================================================# ======================================5.执行部分======================================# =========================================================================================if __name__ == "__main__":    df = pd.read_excel(r"data.xlsx")  #读取数据    frequencies = dict(zip(df['POI_Type'], df['Count']))  #提取数据打包后转换为词频字典    #调用绘图函数    plot_and_save_wordcloud(frequencies, "Local_Data_Cloud",SHAPE_KEY)

如何应用到你自己的数据

1.设置配色方案:

SCHEME_ID = 1  #配色方案

2.设置形状方案:

SHAPE_KEY = 'b'  #设置形状

3.设置绘图结果的保存路径:

plt.savefig(fr"{shape_name}_Theme{SCHEME_ID}.png" , dpi=300, bbox_inches='tight')

4.设置原始数据的文件路径:

df = pd.read_excel(r"data.xlsx") 

预告

推荐

期刊图片复现|Python绘制二维偏依赖PDP图
期刊复现|python绘制基于SHAP分析和GAM模型拟合的单特征依赖图
期刊图片复现|python绘制带有渐变颜色shap特征重要性组合图(条形图+蜂巢图)
期刊复现|用Python绘制SHAP特征重要性总览图、依赖图、双特征交互效应SHAP图,解锁XGBoost模型的终极奥秘
期刊图片复现|Python绘制shap重要性蜂巢图+单特征依赖图+交互效应强度气泡图+交互效应依赖图(回归+二分类+分类)

获取方式

公众号中的代码需要请后台私信我,注意只会分享练习数据和代码文件,不会提供答疑服务,代码文件中已经包含了每行代码的完整注释!!!

最新文章

随机文章