我想将x轴刻度标签更改为自定义字符串。
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
import matplotlib.pyplot as plt
def pushButtonClicked(self):
code = self.lineEdit.text()
x=["one","two","three"]
l=[1,2,3]
y=[2,3,4]
ax = self.fig.add_subplot(111)
print(1)
ax.plot(l, y, label='DeadPopulation')
ax.xticks(l,x)
print(IntroUI.g_sortArrayDeadcnt)
ax.legend(loc='upper right')
ax.grid()
self.canvas.draw()
尽管搜索了很多网站并找到了许多代码示例,但我无法解决这个问题。我的代码有什么问题?
答案 0 :(得分:4)
我假设您只想将刻度设置为等于['one', 'two', 'three']
?
为此,您需要使用set_xticks()
和set_xticklabels()
:
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
import matplotlib.pyplot as plt
def pushButtonClicked(self):
code = self.lineEdit.text()
x=["one","two","three"]
l=[1,2,3]
y=[2,3,4]
ax = self.fig.add_subplot(111)
print(1)
ax.plot(l, y, label='DeadPopulation')
# Set the tick positions
ax.set_xticks(l)
# Set the tick labels
ax.set_xticklabels(x)
print(IntroUI.g_sortArrayDeadcnt)
ax.legend(loc='upper right')
ax.grid()
self.canvas.draw()
import matplotlib.pyplot as plt
f, ax = plt.subplots()
x = ['one', 'two', 'three']
l = [1, 2, 3]
y = [2, 3, 4]
ax.plot(l,y)
ax.set_xticks(l)
ax.set_xticklabels(x)
plt.show()
以下是它的样子: