我试图在任一轴上绘制一个没有刻度线或数字的图形(我使用传统意义上的轴,而不是matplotlib命名法!).我遇到的一个问题是matplotlib通过减去值N来调整x(y)ticklabels,然后在轴的末尾添加N.
这可能是模糊的,但下面的简化示例突出了问题,'6.18'是N的违规值:
import matplotlib.pyplot as plt
import random
prefix = 6.18
rx = [prefix+(0.001*random.random()) for i in arange(100)]
ry = [prefix+(0.001*random.random()) for i in arange(100)]
plt.plot(rx,ry,'ko')
frame1 = plt.gca()
for xlabel_i in frame1.axes.get_xticklabels():
xlabel_i.set_visible(False)
xlabel_i.set_fontsize(0.0)
for xlabel_i in frame1.axes.get_yticklabels():
xlabel_i.set_fontsize(0.0)
xlabel_i.set_visible(False)
for tick in frame1.axes.get_xticklines():
tick.set_visible(False)
for tick in frame1.axes.get_yticklines():
tick.set_visible(False)
plt.show()
Run Code Online (Sandbox Code Playgroud)
我想知道的三件事是:
如何首先关闭这种行为(虽然在大多数情况下它是有用的,但并不总是!)我已经查看了matplotlib.axis.XAxis,找不到任何合适的东西
怎么能让N消失(即X.set_visible(False))
还有更好的方法来完成上述任务吗?我的最终情节将是图中的4x4子图,如果这是相关的.
我想对绘图中的几个选定的刻度标签进行一些修改.
例如,如果我这样做:
label = axes.yaxis.get_major_ticks()[2].label
label.set_fontsize(size)
label.set_rotation('vertical')
Run Code Online (Sandbox Code Playgroud)
更改刻度标签的字体大小和方向.
但是,如果尝试:
label.set_text('Foo')
Run Code Online (Sandbox Code Playgroud)
刻度标签未被修改.如果我这样做:
print label.get_text()
Run Code Online (Sandbox Code Playgroud)
没有打印.
这里有些陌生.当我尝试这个时:
from pylab import *
axes = figure().add_subplot(111)
t = arange(0.0, 2.0, 0.01)
s = sin(2*pi*t)
axes.plot(t, s)
for ticklabel in axes.get_xticklabels():
print ticklabel.get_text()
Run Code Online (Sandbox Code Playgroud)
仅打印空字符串,但该图包含标记为"0.0","0.5","1.0","1.5"和"2.0"的刻度线.
我有一个 seaborn 热图,但我需要删除显示为破折号的轴刻度线。我想要刻度标签,但只需要删除两个轴上每个刻度处的破折号 (-)。我目前的代码是:
sns.heatmap(df, annot=True, fmt='.2f', center=0)
Run Code Online (Sandbox Code Playgroud)
我试过绝望,但没有奏效。