如何解决用标记替换轮廓中级别的标签
是否可以在matplotlib中用圆形和星形之类的标记替换轮廓中级别的文本? 我正在使用此代码显示级别。但是我想用情节中的星星替换零!
levels = [0,10]
cs1 = ax0.contourf(p,l,p_difference,levels,cmap=cmap,vmin=vmin,vmax=vmax)
cs = ax0.contourf(p,vmax=vmax)
ax0.clabel(cs1,fmt='%2.1d',colors='k',fontsize=12) # contour line labels
解决方法
clabel()
的fmt
参数可以是将级别映射到字符串的字典。这样的字符串可以使用所用字体中可用的任何unicode字符。这是一个示例:
from matplotlib import pyplot as plt
import numpy as np
p = np.linspace(0,10,400)
l = np.linspace(0,400)
pp,ll = np.meshgrid(p,l)
p_difference = np.sin(pp + 0.06 * np.random.randn(400,1).cumsum(axis=0)) \
* np.cos(ll + 0.06 * np.random.randn(1,400).cumsum(axis=1)) * 6 + 5
levels = [0,10]
vmin = -1
vmax = 11
cs1 = plt.contour(p,l,p_difference,levels=levels,cmap='seismic',vmin=vmin,vmax=vmax)
cs = plt.contourf(p,levels=np.arange(-1,12,1),vmax=vmax)
fmt = {0: '☆',10: '★'}
plt.clabel(cs1,fmt=fmt,colors='w',fontsize=20)
plt.colorbar(cs)
plt.show()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。