我正在设法解决如何设置/更正3D matplotlib绘图的刻度标签的位置。刻度线标签不与刻度线对齐。当需要许多刻度标签时,问题似乎尤其突出。为matplotlib 3D绘图勾选标签位置
我修改了matplotlib文档中的一个示例(http://matplotlib.org/examples/mplot3d/polys3d_demo.html)来说明我的问题。
from mpl_toolkits.mplot3d import Axes3D
from matplotlib.collections import PolyCollection
from matplotlib.colors import colorConverter
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure(figsize=(10,10))
ax = fig.gca(projection='3d')
cc = lambda arg: colorConverter.to_rgba(arg, alpha=0.6)
xs = np.arange(0, 10, 0.4)
verts = []
zs = np.arange(50)
for z in zs:
ys = np.ones(len(xs))*z
ys[0], ys[-1] = 0, 0
verts.append(list(zip(xs, ys)))
poly = PolyCollection(verts,facecolor='c')
poly.set_alpha(0.7)
ax.add_collection3d(poly, zs=zs, zdir='y')
ax.set_xlabel('X')
ax.set_xlim3d(0, 10)
ax.set_ylabel('Y')
ax.set_ylim3d(-1, len(zs))
ax.set_yticks(np.arange(len(zs)))
labels = {}
for l_c in zs:
labels[l_c] = 'This Looks Bad'
ax.set_yticklabels(labels,rotation=-15)
ax.set_zlabel('Z')
ax.set_zlim3d(0, ys.max())
plt.show()
因此问题是:如何才能得到刻度标记与刻度位置对齐?
作为OP的一个注释:'va'与'verticalalignment'是同义的,如我的例子。 'ha'和'horizontalalignment'也是一样。 – Hooked
是的,谢谢澄清,当输入他们很多时,缩写是幸福的。 :) –
谢谢@Rutger。我想这是可以做到的最好的。我已经玩过这些(哈,瓦),几乎得到了我想要的。它在这个玩具的例子中比我想要解决的实际问题更好。你可以举一个如何减少填充的例子吗?也许添加到你现有的答案。 –