2017-08-17 12 views
0

私は、インデックス0に対してすなわち、そのカテゴリのテキストラベルが含まれている個別のファイルを持っているSeaborn:barplotのX-Axisでindexをテキストに置き換えるにはどうすればよいですか?

.....すなわち0,1,2をクラスラベルを表す整数値を持つcategory列を持つデータセットを持って、それがclassAが含まれています等々。私は次のコードでseabornを使ってbarplotをプロットしたい。

import seaborn as sns 
train_df = pd.read_csv("unclean_text.csv", sep='\t') 
label_text = pd.read_csv("labels.csv") 
is_dup = train_df['category'].value_counts() 

plt.figure(figsize=(8,4)) 
sns.barplot(is_dup.index, is_dup.values, alpha=0.8, color=color[1]) 
plt.show() 

各クラスの頻度のバープロットを正しくプロットします。

enter image description here

しかし、私は、また、長さ19(0-18)の列ベクトルである代わりlabel_textにあるインデックス値のx軸上のテキストラベルを、望みます。どうやってするの?

答えて

2

sns.barplot()はプロットの軸を返します。あなたの目盛りラベルを設定するためにこれを使用することができます。

import matplotlib.pyplot as plt 
import pandas as pd 
import seaborn as sns 

color = ['r', 'g', 'b'] 
train_df = pd.read_csv("unclean_text.csv", sep='\t') 
label_text = pd.read_csv("labels.csv") 
is_dup = train_df['category'].value_counts() 

plt.figure(figsize=(8,4)) 
ax = sns.barplot(is_dup.index, is_dup.values, alpha=0.8, color=color[1]) 
ax.set_xlabel('Category') 
ax.set_ylabel('Number of Occurrences') 
ax.set_xticklabels(label_text['labels'], rotation='vertical', fontsize=10) 
plt.show() 

これはlabels.csvを前提としてのようなものです:あなたの出力与える

labels 
cat0 
cat1 
cat2 
cat3 
cat4 
cat5 
cat6 
cat7 
cat8 

etc.. 

graph plot with labels for x axis

+0

はあなたに感謝!正確に私が必要としたもの。 –

+0

これは答えですが、正解ではありません。 – mwaskom

関連する問題