更改 matplotlib 图表中的刻度文本
Change tick text in matplotlib chart
假设我想将“2”的刻度标签从 Y 轴更改为 'B' 我使用了 plt.yticsk(2,'B')
但是好像不行
有什么办法可以修改吗?这是代码:
import matplotlib.pyplot as plt
y = [-1,2,3,4,5,0,1]
x = [3,5,3,9,7,1,4]
colorsValue = []
for value in x:
if value < 4:
colorsValue.append('yellow')
elif value >= 4:
colorsValue.append('red')
else:
colorsValue.append('orange')
plt.barh(y, x, color = colorsValue)
plt.ylabel('Y')
plt.xlabel('X')
plt.yticks(2,'b')
plt.show()
您需要先查询位置(所谓的 ticks
)和标签,然后您可以修改它们并将它们设置为名为 plt
:
的 pyplot 对象
import matplotlib.pyplot as plt
import matplotlib.text
y = [-1,2,3,4,5,0,1]
x = [3,5,3,9,7,1,4]
colorsValue = []
for value in x:
if value < 4:
colorsValue.append('yellow')
elif value >= 4:
colorsValue.append('red')
else:
colorsValue.append('orange')
plt.barh(y, x, color = colorsValue)
plt.ylabel('Y')
plt.xlabel('X')
ticks, labels = plt.yticks()
for i,t in enumerate(ticks):
labels[i].set_text(t)
if t == 2:
labels[i].set_text('b')
plt.yticks(ticks,labels)
plt.show()
这是结果图:
您可以通过查看如何制作您期望的东西来找到灵感:https://www.python-graph-gallery.com/191-custom-axis-on-matplotlib-chart
结果可能如下:
import matplotlib.pyplot as plt
y = [-1,2,3,4,5,0,1]
x = [3,5,3,9,7,1,4]
yticks = ['-1','b','3','4','5','0','1']
colorsValue = []
for value in x:
if value < 4:
colorsValue.append('yellow')
elif value >= 4:
colorsValue.append('red')
else:
colorsValue.append('orange')
plt.barh(y, x, color = colorsValue)
plt.ylabel('Y')
plt.xlabel('X')
plt.yticks(y,yticks)
plt.show()
这是您期望的结果吗?
假设我想将“2”的刻度标签从 Y 轴更改为 'B' 我使用了 plt.yticsk(2,'B')
但是好像不行
有什么办法可以修改吗?这是代码:
import matplotlib.pyplot as plt
y = [-1,2,3,4,5,0,1]
x = [3,5,3,9,7,1,4]
colorsValue = []
for value in x:
if value < 4:
colorsValue.append('yellow')
elif value >= 4:
colorsValue.append('red')
else:
colorsValue.append('orange')
plt.barh(y, x, color = colorsValue)
plt.ylabel('Y')
plt.xlabel('X')
plt.yticks(2,'b')
plt.show()
您需要先查询位置(所谓的 ticks
)和标签,然后您可以修改它们并将它们设置为名为 plt
:
import matplotlib.pyplot as plt
import matplotlib.text
y = [-1,2,3,4,5,0,1]
x = [3,5,3,9,7,1,4]
colorsValue = []
for value in x:
if value < 4:
colorsValue.append('yellow')
elif value >= 4:
colorsValue.append('red')
else:
colorsValue.append('orange')
plt.barh(y, x, color = colorsValue)
plt.ylabel('Y')
plt.xlabel('X')
ticks, labels = plt.yticks()
for i,t in enumerate(ticks):
labels[i].set_text(t)
if t == 2:
labels[i].set_text('b')
plt.yticks(ticks,labels)
plt.show()
这是结果图:
您可以通过查看如何制作您期望的东西来找到灵感:https://www.python-graph-gallery.com/191-custom-axis-on-matplotlib-chart
结果可能如下:
import matplotlib.pyplot as plt
y = [-1,2,3,4,5,0,1]
x = [3,5,3,9,7,1,4]
yticks = ['-1','b','3','4','5','0','1']
colorsValue = []
for value in x:
if value < 4:
colorsValue.append('yellow')
elif value >= 4:
colorsValue.append('red')
else:
colorsValue.append('orange')
plt.barh(y, x, color = colorsValue)
plt.ylabel('Y')
plt.xlabel('X')
plt.yticks(y,yticks)
plt.show()
这是您期望的结果吗?