我有以下脚本来生成NxN核心的热图:
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
import numpy as np
matrix = np.random.randint(300,high=400, size=(4, 4))
heatmap = plt.pcolor(np.array(matrix))
for y in range(len(matrix)):
for x in range(len(matrix[0])):
plt.text(x + 0.5, y + 0.5, '%.4f' % matrix[y][x],
horizontalalignment='center',
verticalalignment='center',
)
plt.colorbar(heatmap)
plt.xlabel ("Cores")
plt.ylabel ("Cores")
plt.title ("Temperature Map of the NxN Cores")
plt.savefig ("xyz"+".png")
plt.show()
plt.clf()
它产生了这个:
由于每个方块都描绘了一个核心,0.5
,1.5
等的值没有任何意义。
我希望轴值只是整数。我为此查找了文档,但找不到实现此目的的方法。
答案 0 :(得分:1)
您可以使用plt.yticks
和plt.xticks(range(min(x), max(x)+1))
plt.yticks(range(min(y), max(y)+1))
plt.show()
明确设置要勾选标记的位置。
对于你的例子:
import numpy as np
plt.xticks(np.arange(min(x), max(x)+1, 1.0))
plt.yticks(np.arange(min(y), max(y)+1, 1.0))
plt.show()
如果您的数据不是整数,则可以使用:
String str = "{23,213}";
str = str.Replace('{', '');
str = str.Replace('}', '');
string[] coord = str.Split(',');
CoreGraphics.CGPoint pt = new CoreGraphics.CGPoint(Int64.Parse(coord[0]), Int64.Parse(coord[1]);