如何在pyplot中指定2D直方图图像大小和比例

时间:2017-02-27 11:29:58

标签: python-2.7 matplotlib

我希望使用pyplot生成一系列2D直方图。 我希望能够指定生成的图像的大小和比例(或纵横比)。除此之外,我想删除刻度线和轴标签和边框。

这在plt.hist2d()方法的参数中似乎不可能。

我发布了pyplot演示脚本,而不是分享我的(相当复杂的)代码。如果使用此代码可以获得我想要的内容,那么可以使用我的代码。

import matplotlib.pyplot as plt
import numpy as np
x = np.random.randn(1000)
y = np.random.randn(1000) + 5

# normal distribution center at x=0 and y=5
plt.hist2d(x, y, bins=40)
plt.show()

提前感谢您的帮助。

3 个答案:

答案 0 :(得分:0)

figsize应该做你想做的事:

plt.figure(figsize=(20,10))    
plt.hist2d(x, y, bins=40)
plt.show()

答案 1 :(得分:0)

单独指定方面无济于事,您还需要宽度或高度的数字大小 要摆脱边距,可以使用subplots_adjust。要关闭轴,您需要axis("off")

import matplotlib.pyplot as plt
import numpy as np
x = np.random.randn(1000)
y = np.random.randn(1000) + 5

width=4 # inch
aspect=0.8 # height/width ratio
height = width*aspect
plt.figure(figsize=(width, height ))
plt.hist2d(x, y, bins=40)
plt.subplots_adjust(bottom=0, top=1, left=0, right=1)
plt.gca().axis("off")
plt.show()

enter image description here

答案 2 :(得分:0)

以下代码段显示了如何快速轻松地

  • 设置数字大小(隐式地显示宽高比)
  • 禁用轴边框并勾选注释
  • 设置轴以填充整个图形(删除边框)
  • 将生成的图形保存到图像文件中。

import matplotlib.pyplot as plt
import numpy as np
x = np.random.randn(1000)
y = np.random.randn(1000) + 5

plt.figure(figsize=[7, 2])  # set figure dimensions to weird but illustrative aspect ratio
plt.hist2d(x, y, bins=40)
plt.box(False)  # disable axis box
plt.xticks([])  # no x axis ticks
plt.yticks([])  # no y axis ticks
plt.subplots_adjust(left=0, right=1, top=1, bottom=0)  # remove borders
plt.savefig('output.png')
plt.show()