Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matplotlib 三维记号标签无法正确显示_Matplotlib_Mplot3d - Fatal编程技术网

Matplotlib 三维记号标签无法正确显示

Matplotlib 三维记号标签无法正确显示,matplotlib,mplot3d,Matplotlib,Mplot3d,我正在使用mplot3d绘制三维条形图: import numpy as np import matplotlib matplotlib.use("Qt4Agg") from mpl_toolkits.mplot3d import Axes3D import matplotlib.pyplot as plt from matplotlib import cm result=[[0, 0, 5, 5, 14,40,50], [0, 1, 8, 9, 20,50,70], [0, 2, 8, 10

我正在使用mplot3d绘制三维条形图:

import numpy as np
import matplotlib
matplotlib.use("Qt4Agg")
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
from matplotlib import cm

result=[[0, 0, 5, 5, 14,40,50],
[0, 1, 8, 9, 20,50,70],
[0, 2, 8, 10, 25,60,80],
[0, 5, 10, 20, 40,75,100]]

result = np.array(result, dtype=np.int)
fig=plt.figure()
fig.set_size_inches(6, 4)
ax1=fig.add_subplot(111, projection='3d')
ax1.view_init(25, 280)

matplotlib.rcParams.update({'font.size': 12})
matplotlib.rcParams['font.weight']='normal'

xlabels = np.array(["Count1", "Count3","Count5", "Count6","Count7","Count8","Count9"])
xpos = np.arange(xlabels.shape[0])
ylabels = np.array(["5%","10%","20%","100%"])
ypos = np.arange(ylabels.shape[0])

xposM, yposM = np.meshgrid(xpos, ypos, copy=False)

zpos=result
zpos = zpos.ravel()

dx=0.75
dy=0.5
dz=zpos

ax1.w_xaxis.set_ticks(xpos + dx/2.)
ax1.w_xaxis.set_ticklabels(xlabels)

ax1.w_yaxis.set_ticks(ypos + dy/2)
ax1.set_yticklabels(ylabels)

ax1.w_zaxis.set_ticklabels(["","20%","40%","60%","80%","100%"])

colors = ['b','b','b','b','b','b','b','r','r','r','r','r','r','r','y','y','y','y','y','y','y','g','g','g','g','g','g','g']
ax1.bar3d(xposM.ravel(), yposM.ravel(), dz*0, dx, dy, dz, color=colors)
fig.savefig('tmp.tiff', dpi=300)
plt.close()
下面是我得到的:

实际上,这里有两个问题:

P>1)Y蜱标记没有正确显示,它们应该位于蜱的中间,而不是蜱。z记号标签与z记号太接近


2) 我想使用12号字体,dpi应该大于300。我无法缩放x轴以使x记号标签很好地匹配并且不重叠。我试过把XPO乘以2。但是,记号标签仍然重叠

我不认为改变字体大小或图像的整体大小会有什么帮助(那么出版物的有效字体大小可能会降低,而不是看起来太小)。当我调整fontsize时,所有的标签看起来都放得很好。我试着像你说的那样设置字体大小:在ax1.w_zaxis.get_major_ticks():tick.label.set_fontsize(8)或matplotlib.rcParams.update({'font.size':8})matplotlib.rcParams.update({'s axes.titlesize':8})matplotlib.rcParams.update({'axes.labelsize':8})matplotlib.rcParams.update({'ytick.labelsize':8})matplotlib.rcParams.update({'xtick.labelsize':8})但它根本没有给我任何效果。我只在示例中的一个位置将它更改为
matplotlib.rcParams.update({'font.size':12})
matlib.rcParams.update({'font.size':9})
而且它看起来好多了(Ipython、Jupyter、Python 2.7)。@roadrunner66同样适用于我。此外,我建议在
savefig
中添加参数
bbox\u inches='tight'
以去除边距。@roadrunner66:在另一台机器上运行它对我来说很有效。imaluengo感谢你的建议。