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

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')#保存图片

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

electrochemjy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值