2017-10-28 15 views
2

シーボンを使ってヒストグラムを作成しようとしています。ここでビンは0から始まり1になります。しかし、日付は0.22から0.34の範囲にしかありません。ビジュアルエフェクトのために空きスペースを増やして、データをよりよく表現したい。海底のヒストグラムのビンの範囲を拡大する

は、私がここで私は私のリストと私はヒストグラムのビンの範囲を定義すべきだと思ういずれかの変数を作成

import pandas as pd 
import matplotlib as mpl 
import matplotlib.pyplot as plt 
import numpy as np 
import seaborn as sns 

%matplotlib inline 
from IPython.display import set_matplotlib_formats 
set_matplotlib_formats('svg', 'pdf') 

df = pd.read_excel('test.xlsx', sheetname='IvT') 

と私のシートを作成します。

st = pd.Series(df['Short total']) 
a = np.arange(0, 1, 15, dtype=None) 

ヒストグラム自体は、それがグラフはxの範囲は、-0.04から0.04まで0から0.2050及びYに行くビット作成し、この

sns.set_style("white") 
plt.figure(figsize=(12,10)) 
plt.xlabel('Ration short/total', fontsize=18) 
plt.title ('CO3 In vitro transcription, Na+', fontsize=22) 

ax = sns.distplot(st, bins=a, kde=False) 

plt.savefig("hist.svg", format="svg") 
plt.show() 

Histogram

ように見えます。私の期待とは全く違う私はかなりの時間のGoogle検索したが、私の特定の問題への答えを見つけることができないようです。

すでに、お世話になっていただきありがとうございます。

答えて

1

ここで希望の結果を達成するためのアプローチがいくつかあります。たとえば、ヒストグラムをプロットした後にxaxisの制限を変更したり、ビンが作成される範囲を調整することができます。

import seaborn as sns 

# Load sample data and create a column with values in the suitable range 
iris = sns.load_dataset('iris') 
iris['norm_sep_len'] = iris['sepal_length']/(iris['sepal_length'].max()*2) 
sns.distplot(iris['norm_sep_len'], bins=10, kde=False) 

enter image description here

変更x軸の制限(ビンはまだあなたのデータの範囲に渡って作成されます):

ax = sns.distplot(iris['norm_sep_len'], bins=10, kde=False) 
ax.set_xlim(0,1) 

enter image description here

の範囲0以上のビンを作成します。 1:

sns.distplot(iris['norm_sep_len'], bins=10, kde=False, hist_kws={'range':(0,1)}) 

enter image description here

あなたはXLIMを調整するときと同じビン幅を持つようにしたい場合は、ビンの範囲は大きいので、あなたが今より多くのビンを使用する必要があります。

sns.distplot(iris['norm_sep_len'], bins=45, kde=False, hist_kws={'range':(0,1)}) 

enter image description here

+0

どうもありがとうございました。それがトリックでした。方法はありますか、私は棒の周りに境界線を得るために次の引数を使用することもできますか? hist_kws = dict(edgecolor = "k"、線幅= 2) – Jul

+0

@Jul 'hist_kws'は、引数をmatplotlibから基になるヒストグラム関数に送ります。ドキュメントを読むことで渡すことができるすべての引数を見ることができます: 'import matplotlib.pyplot as plt; ?plt.hist'この場合、 '' bar''として 'histt​​ype'を指定します。この回答を受け入れてupvoteすることを忘れないでください。あなたの問題を解決しました。 –

+0

ヒストグラムのコードをax = sns.distplot(st、bins = 34、kde = False、color = '#007b7f'、histt​​ype = 'bar'、hist_kws = dict(edgecolor = "k"、線幅= 2))それは私に、次のようなエラーメッセージを出します:_distplot()は予期しないキーワード引数 'histt​​ype'を持っています。あるいは、matplotlib内のhistt​​ypeを変更する必要がありますか? – Jul

関連する問題