如何指定matplotlib輸出圖片的尺寸?

如圖,數據下面是數據的編號(我是排序過的)。數據很多的時候根本看不清。

於是只能手動zoom:

zoom之後下面的編號就看清了。

我現在是想能不能直接保存為一個長長的圖片,讓下面的編號能看清?

直接savefig的話只能是上面圖片的效果。

謝謝各位大神!!!


fig = matplotlib.pyplot.gcf()
fig.set_size_inches(18.5, 10.5)
fig.savefig("test2png.png", dpi=100)


plt.figure(figsize=(60,1))


謝邀,知乎第一邀。。。雖然我不是很專業

上面的大神們給出的解決方案很正!

我補充個圖

圖是別人博客搞來的

但是,我要說一句了,竊以為,題主這x軸這麼長長長的圖,執著的選用柱狀圖表達是不是不一定很好!(雖然我也沒想到換成什麼別的樣式)

如果此圖對你很重要,表現重要成果,可以去matplotlib畫廊找找靈感啊~


import matplotlib.pyplot as plt
import matplotlib.pylab as pylab
import numpy as np

def draw_bar(self, labels, quants):
width = 0.8
ind = np.linspace(1, 66, 65)
# 繪圖參數全家桶
params = {
"axes.labelsize": "16",
"xtick.labelsize": "16",
"ytick.labelsize": "13",
"lines.linewidth": "2",
"legend.fontsize": "20",
"figure.figsize": "26, 24" # set figure size
}
pylab.rcParams.update(params)
# make a square figure
fig = plt.figure(1)
ax = fig.add_subplot(111)
# Bar Plot
#橫的柱狀圖
ax.barh(ind - width / 2, quants, width, color="blue")
#豎的柱狀圖
#ax.bar(ind - width / 2, quants, width, color="blue")
# Set the ticks on x-axis
ax.set_yticks(ind)
ax.set_yticklabels(labels)
#豎的柱狀圖
#ax.set_xticks(ind)
#ax.set_xticklabels(labels)
# labels
ax.set_xlabel("xxx")
ax.set_ylabel("xxxxxxxx")
# title
ax.set_title("xxxxxxxxxxxxx")
plt.grid(True)
#也可以這樣設置圖片大小
#plt.figure(figsize=())
#plt.show()
plt.savefig("bar.jpg")
plt.close()


推薦閱讀:

R語言可以做哪些有趣的事情?
如何評價 D3.js 這個框架?
Processing和OSG的比較:一個是新興的語言,一個是成熟的API,它們在實現數據可視化方面到底有什麼優劣呢?
你最欣賞的數據可視化的案例是什麼?
在目前沒有實際數據資源的情況下,如何學習數據分析?

TAG:Python | 數據可視化 | 可視化 | Matplotlib |