Python 更改matplotlib打印标签中单个字符的颜色
在python 3.4中使用matplotlib: 我想能够设置轴标签中单个字符的颜色 例如,条形图的x轴标签可能为['100'、'110'、'101'、'111'、…],我希望第一个值为红色,其他值为黑色 这是否可能,是否有某种方式可以格式化文本字符串,以便以这种方式读取它们?也许有一些手柄可以在SETxticklabels上抓取并修改 或者,除了matplotlib之外,还有其他库可以做到这一点吗 示例代码(了解我的习惯用法):Python 更改matplotlib打印标签中单个字符的颜色,python,python-3.x,matplotlib,Python,Python 3.x,Matplotlib,在python 3.4中使用matplotlib: 我想能够设置轴标签中单个字符的颜色 例如,条形图的x轴标签可能为['100'、'110'、'101'、'111'、…],我希望第一个值为红色,其他值为黑色 这是否可能,是否有某种方式可以格式化文本字符串,以便以这种方式读取它们?也许有一些手柄可以在SETxticklabels上抓取并修改 或者,除了matplotlib之外,还有其他库可以做到这一点吗 示例代码(了解我的习惯用法): 谢谢 我想这会涉及到一些工作。问题在于单个文本对象具有单一颜色
谢谢 我想这会涉及到一些工作。问题在于单个
文本对象具有单一颜色。解决方法是将标签拆分为多个文本对象
首先,我们写标签的最后两个字符。要写第一个字符,我们需要知道要画的轴下有多远——这是通过使用变压器和
我想这需要做一点工作。问题在于单个文本对象具有单一颜色。解决方法是将标签拆分为多个文本对象
首先,我们写标签的最后两个字符。要写第一个字符,我们需要知道要画的轴下有多远——这是通过使用变压器和
rlabsC = ['100','110','101','111']
xs = [1,2,3,4]
ys = [0,.5,.25,.25]
fig = plt.figure()
ax = fig.add_subplot(1,1,1)
ax.bar(xs,ys)
ax.set_xticks([a+.5 for a in xs])
ax.set_xticklabels(rlabsC, fontsize=16, rotation='vertical')
rlabsC = ['100','110','101','111']
xs = [1,2,3,4]
ys = [0,.5,.25,.25]
fig = plt.figure()
ax = fig.add_subplot(1,1,1)
ax.bar(xs,ys)
ax.set_xticks([a+.5 for a in xs])
plt.tick_params('x', labelbottom='off')
text_kwargs = dict(rotation='vertical', fontsize=16, va='top', ha='center')
offset = -0.02
for x, label in zip(ax.xaxis.get_ticklocs(), rlabsC):
first, rest = label[0], label[1:]
# plot the second and third numbers
text = ax.text(x, offset, rest, **text_kwargs)
# determine how far below the axis to place the first number
text.draw(ax.figure.canvas.get_renderer())
ex = text.get_window_extent()
tr = transforms.offset_copy(text._transform, y=-ex.height, units='dots')
# plot the first number
ax.text(x, offset, first, transform=tr, color='red', **text_kwargs)