前言

创作开始时间:2021年3月30日23:08:29

如题。先给效果图,然后给代码,最后给详细参考。

效果图

在这里插入图片描述
个人觉得还可以。下面给出关键代码(具体数据就不给了)。

1、代码

# 这里是对画布的设置。num 是 数字或者字符串,是figure的名字。
# subplots是方便多个子图(只有一个图的时候写1,1就行)
    fig, axes = plt.subplots(1, 1, num="stars",figsize=(13, 12))#, sharex=True)
# 使用画布背景。
    plt.style.use('seaborn-darkgrid') #'seaborn-bright'
# 调色板,可以使用里面的颜色 color,还挺好看的
    palette = plt.get_cmap('tab20c')#'Pastel2') # 'Set1' 
    print(f"{palette.colors} {len(palette.colors)}")#type:{type(palette)} 
    plt.subplot(1, 1, 1)
# 调用histplot作图
    ax1 = sns.histplot(df["stars"], kde = True, bins = 100, shrink = 1, color = palette.colors[0], edgecolor = palette.colors[-1])#"none")#, element="step")# element = "poly") # cumulative = True)

    # ax.invert_yaxis() 
    # plt.gca().invert_yaxis()
    # newx = ax.lines[0].get_ydata()
    # newy = ax.lines[0].get_xdata()

    # # set new x- and y- data for the line
    # ax.lines[0].set_xdata(newx)
    # ax.lines[0].set_ydata(newy)

    # plt.subplot(2, 1, 2)
    # sns.distplot(df["stars"], kde = True, bins = 20)# element="step", fill=False)

# 给直方图添加文字注释(就是在每一个bar的上方加文字)
    for p in ax1.patches:
        if p.get_height() > 0:
            ax1.annotate(
                # 文字内容
                text=f"{p.get_height():1.0f}",
                # 文字的位置
                xy=(p.get_x() + p.get_width() / 2., p.get_height()), 
                xycoords='data',
                ha='center', 
                va='center', 
                fontsize=10, 
                color='black',
                # 文字的偏移量
                xytext=(0,7), 
                textcoords='offset points',
                clip_on=True,                   # <---  important
            )

# 紧密排版
    plt.tight_layout()
# 保存图片
    plt.savefig(os.path.join(cur_dir_path,"star.pdf"))
    plt.show()

下面给出相关参考

plt.style.use

有关plt.style.use所有的style类型,详见官网文档:

cmap

参考:

如何修改histplot的edgecolor之类的颜色?

一开始是真不明白,后来仔细看了:

还要结合官方文档看,才知道,kwargs表示的是,可以传递其他matplotlib函数的参数进来。这个有点厉害的,感觉seaborn确实做得可以,但是以前没看出来。

如何添加文字注释?

参考:

怎么样同时画histogram和density plot?

参考:

小结

以上

创作结束时间:2021年3月30日23:31:40

参考文献

其他不是很重要的参考:

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐