python添加自定义刻度和标签

用python实现一个曲线图,正常刻度很好实现,甚至可以根据数据自动给出x轴刻度值。

import numpy as np
import cv2
import matplotlib.pyplot as plt

#读取图像
img = cv2.imread("img/I-2.jpg",0)

#求图像的像素平均值
h=img.shape[0]
w=img.shape[1]
geshu=h*w
img_array = np.array(img)#把图像转成数组格式img = np.asarray(image)
mean = np.sum(img_array) / geshu  # 求整个一维数组平均值
print(mean)

##画灰度直方图
plt.hist(img.ravel(), 256,[0,255],color='gray')

# 绘制分割点
plt.axvline(mean, color='r')
# 绘制类间方差遍历过程示意图
plt.title("1")
plt.tick_params(direction='in')  # 刻度向里

plt.show()
cv2.waitKey()
cv2.destroyAllWindows()# 销毁所有窗口

图的效果:

 但是,我们的平均值表示出来了,虽然可以得到值,但是怎么在坐标轴上表示他呢,本人查阅很多资料,什么定位深的,最后巧妙用了一招:在plt.show()之前加一句

##完美增加想要刻度的值。
plt.xticks([0,50,100,mean,150,200,250])

 这不,119就显示出来了。而且可以随意的改变刻度值。如:

plt.xticks([0,40,mean,189,250])

 看到么,这一招可以跳跃出来框架,可以随意设置想要的值,包括可以不是平均分布的,不需要搞什么主副坐标刻度。

猜你喜欢

转载自blog.csdn.net/m0_63172128/article/details/126880517