2017-02-27 11 views
0

pyplotを使用して一連の2Dヒストグラムを作成したいとします。 生成されたイメージのサイズとスケール(またはアスペクト比)を指定できるようにします。これに加えて、ティックと軸のラベルと罫線を削除したいと思います。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() 

ご協力いただきありがとうございます。

+0

あなただけ*含まれている画像( '.png'ファイルまたは何でも)を作成するようにあなたの質問は任意のmatplotlibのなしヒストグラム*音が注釈やパディングを軸。あれは正しいですか? – kazemakase

+0

@kazemakase、それは正しいです。しかし、特にアスペクト比を設定する必要があります。 –

答えて

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

+0

@ImportanceOfBeingEarnestありがとう、非常に参考になりました。なぜこのような問題を抱えていたのか分かりません。 –

0

figsizeはあなたが欲しいものを行う必要があります。

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

これは2Dヒストグラムでは機能していないようです。上の例でこれがどのように機能するか説明できますか? –

+0

@ IanDella-Roccaは私の答えをあなたのコメントと組み合わせて編集しました。 Justeは、 '(20,10)'タプルを、あなたが望む比率に変更します。 – Eiffel

0

次のコードは、軸バウンディングボックスを無効にして注釈ダニ

  • 迅速かつ容易

    • 図形のサイズ(および暗黙的にアスペクト比)を設定する方法を示し
    • 図形全体を埋めるように軸を設定します(枠線を削除します)
    • 結果のFigureをイメージファイルに保存します。

    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() 
    
  • +0

    私は答えに数分で殴られたようですが、 'axis(" off ")'は実際に 'box' /' xticks'/'yticks'よりも綺麗です。 – kazemakase

    関連する問題