【python学习】matplotlib绘制仅有y轴的数值条码图/台阶图(隐藏特定坐标轴) 您所在的位置:网站首页 python画图形代码大全 【python学习】matplotlib绘制仅有y轴的数值条码图/台阶图(隐藏特定坐标轴)

【python学习】matplotlib绘制仅有y轴的数值条码图/台阶图(隐藏特定坐标轴)

2023-07-09 09:28| 来源: 网络整理| 查看: 265

matplotlib绘制仅有y轴的数值条码图/台阶图 图形来源图形绘制思路绘图代码

图形来源

今天看文章,文章中有一幅图,图的表达形式很适合我目前的数据展示,于是想要用python画出来。 在这里插入图片描述 文章来源:Yun-Hua Cheng_2017_Scientific Reports_An extended cluster expansion for ground states of heterofullerenes

图形绘制思路

由于只关注纵坐标的数值大小,不再考虑y与x的关系,因此实际上就是每一个y值都使用一条横线表示,从绘图的角度,最简单的方法就是绘制两个坐标点,这两个坐标点y值相同,x值不同,使用线连接两个点便是一条横线。所以思路很简单:

1. 获取纵坐标数值列表; 2. 使用for循环遍历该列表,创建两个坐标点,该坐标点的y值相同,x值不同;然后使用plt.plot()对这两个坐标点绘图; 3. 遍历绘图后,隐藏上、下、右的坐标轴,便得到仅含有y轴的数值条码图;

在这里插入图片描述

绘图代码 import matplotlib import matplotlib.pyplot as plt from matplotlib.pyplot import MultipleLocator matplotlib.use('Agg') ##图形设置 plt.rcParams['figure.figsize']=(2,6) plt.rcParams['savefig.dpi'] = 300 #图片像素 plt.rcParams['figure.dpi'] = 300 #分辨率 plt.rcParams['font.sans-serif']=['Arial'] #数据导入 #绘制数值条码图 y=[1,2,3,4,5,6,6.1,6.2,6.3,7,8,15,15.1,15.2,15.3] #遍历纵坐标数值,每个数值画一条横线,所以相当于每一个值画一个图 for i in y: x=[0.5,0.8] y=[i,i] plt.plot(x,y,color='tab:orange') ax = plt.gca() ax.axes.xaxis.set_ticks([])#不显示x轴刻度 ax.spines['top'].set_visible(False)#隐藏上、下、右的图框 ax.spines['right'].set_visible(False) ax.spines['bottom'].set_visible(False) labels = ax.get_xticklabels() + ax.get_yticklabels()#设置刻度值的字体、大小 [label.set_fontname('Arial') for label in labels] font1 = {'family' : 'Arial', 'weight' : 'normal', 'size' : 18,} plt.ylabel('y',font1) plt.xticks(fontsize=16) plt.yticks(fontsize=16) plt.tick_params(axis='both',width=1,length=5)#设置刻度线的长度 plt.savefig('plot_step.png',bbox_inches = 'tight')#保存图片

【图形结果】 在这里插入图片描述



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有