我将图像作为python(spyder)中的输出生成。 y轴上的数字都是杂乱无章的,无法读取它们。如何使图形使得y轴上的每个数字都清晰可读。我还想更改x轴的长度,以便用户可以了解每个条在x轴上对应的值。在这一点上真的很难读。
所以,是的,我确实想以自己的方式改变x轴和y轴,如上所述。请帮我解决一下这个。我使用import matplotlib.pyplot作为plt,所以请不要改变它。请点击以下链接查看我得到的图表图片。
http://i57.tinypic.com/6g8obb.png
以下是代码:
tempArray = myNumpRead[:,1]
barh = plt.subplot(111)
width = 0.8
barh.barh(range(len(states)), tempArray)
barh.set_ylim(-width,len(states)+width)
barh.set_yticks(np.arange(len(states)) + width/2)
barh.set_yticklabels(states, rotation=0)
plt.title('Population by State')
plt.xlabel('Population')
plt.ylabel('State Ticker')
plt.grid(True)
plt.show()
感谢您的帮助。
答案 0 :(得分:0)
您的问题很难回答,因为没有您的变量,您的代码无法重现,而且我无法在您提供的链接中看到该图片。
然而,增加你的数字宽度可能是你要求的。这可以这样做:
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 1)
y = x**2
fig = plt.figure(figsize=(10, 3)) # the 10 here is width, the 3 is height
ax = fig.add_subplot(111)
ax.plot(x, y)
plt.show(fig)
如果这有帮助,请告诉我。如果您需要进一步的帮助,请发布可以重现您的问题的代码,而不需要您的变量。即。编写可独立运行的代码。
将代码更改为以下代码可以解决您的问题吗?
tempArray = myNumpRead[:,1]
fig = plt.figure(figsize=(5, 15)) # Change these numbers here to suit what you want
ax = fig.add_subplot(111)
width = 0.8
ax.barh(range(len(states)), tempArray)
ax.set_ylim(-width,len(states)+width)
ax.set_yticks(np.arange(len(states)) + width/2)
ax.set_yticklabels(states, rotation=0)
ax.set_title('Population by State')
ax.set_xlabel('Population')
ax.set_ylabel('State Ticker')
ax.grid(True)
plt.show(fig)