设置Matplotlib 3D图的刻度颜色

时间:2018-11-30 01:28:39

标签: python matplotlib mplot3d

如果我有3D matplotlib图(Axes3D对象),如何更改刻度线的颜色?我想出了如何更改轴线,刻度线标签和轴线标签的颜色。显而易见的解决方案是使用ax.tick_params(axis='x', colors='red'),仅更改刻度线标签,而不更改刻度线本身。

这里是试图将所有轴更改为红色并获得除勾号之外的所有内容的代码:

from mpl_toolkits.mplot3d import Axes3D
from matplotlib import pyplot as plt

fig = plt.figure()
ax = Axes3D(fig)

ax.scatter((0, 0, 1), (0, 1, 0), (1, 0, 0))
ax.w_xaxis.line.set_color('red')
ax.w_yaxis.line.set_color('red')
ax.w_zaxis.line.set_color('red')
ax.w_zaxis.line.set_color('red')
ax.xaxis.label.set_color('red')
ax.yaxis.label.set_color('red')
ax.zaxis.label.set_color('red')
ax.tick_params(axis='x', colors='red')  # only affects
ax.tick_params(axis='y', colors='red')  # tick labels
ax.tick_params(axis='z', colors='red')  # not tick marks

fig.show()

enter image description here

2 个答案:

答案 0 :(得分:5)

manual page中关于select pv.* from tablename pivot (max(Value) for columnname in ([Q1],[Q2],[Q3])) as pv 所述,您会遇到一个错误:

  

虽然当前已实现此功能,但该功能的核心部分   Axes3D对象可能会忽略其中一些设置。将来的版本将   解决这个问题。提交错误的人将得到优先考虑。

要解决此问题,请像this example中那样使用内部tick_params(axis='both', **kwargs)字典:

_axinfo

enter image description here

答案 1 :(得分:2)

获得预期结果的简单方法如下:

from mpl_toolkits.mplot3d import Axes3D
from matplotlib import rcParams
from matplotlib import pyplot as plt

rcParams['xtick.color'] = 'red'
rcParams['ytick.color'] = 'red'
rcParams['axes.labelcolor'] = 'red'
rcParams['axes.edgecolor'] = 'red'

fig = plt.figure()
ax = Axes3D(fig)

ax.scatter((0, 0, 1), (0, 1, 0), (1, 0, 0))
plt.show()

输出显示为:

enter image description here