2017-11-18 17 views
1

joyplotを視覚化するためのコードを以下に記述しました。 axes.set_xticksを使用してx軸のラベルを変更しようとすると、私はAttributeError: 'list' object has no attribute 'set_xticks'joyplotのx軸ラベルを設定する

import joypy 
import pandas as pd 
from matplotlib import pyplot as plt 

data = pd.DataFrame.from_records([['twitter', 1], 
['twitter', 6], 
['wikipedia', 1], 
['wikipedia', 3], 
['indymedia', 1], 
['indymedia', 9]], columns=['platform','day']) 

# Get number of days in the dataset 
numdays = max(set(data['day'].tolist())) 

# Generate date strings from a manually set start date 
start_date = "2010-01-01" 
dates = pd.date_range(start_date, periods=numdays) 
dates = [str(date)[:-9] for date in dates] 

fig, axes = joypy.joyplot(data,by="platform") 
axes.set_xticks(range(numdays)); axes.set_xticklabels(dates) 

plt.show() 

を取得し、予想される出力は次のようになりますがticklabelsとしてdatesからの日数とすべきです。と日付のプロットを作るために

enter image description here

+0

感謝を。 'AttributeError: 'list'オブジェクトに 'set_xticks'という属性がありません。 – textnet

+0

@ImportanceOfBeingErnestそれは残念です。私は今、元の投稿を編集して完全で、検証可能で、うまくいけば最小限になるようにしました。 – textnet

答えて

1

joypy.joyplot(..)figureaxesaxesのタプルが軸のリストでなければなりません返すので、あなたはおそらく最後の軸のラベルを設定したい、

axes[-1].set_xticks(range(numdays)) 
axes[-1].set_xticklabels(dates) 
+0

これは機能します。元の投稿を編集してデータcsvが必要ないようにしました。 – textnet

0

Python matplotlibあなたはplot_date関数を使うべきですか?

イチジク、斧= plt.subplots()
ax.plot_date(日付、DATA1、 ' - ')

私はペーストビンに完全な例を入れて、リンクをたどる: https://pastebin.com/sVPUZaeM

import numpy as np 
import pandas as pd 
import matplotlib.pyplot as plt 
from matplotlib.dates import DateFormatter 
from random import randrange, random 
from datetime import datetime 

#generate date list 
start_date = np.datetime64('2010-01-01').astype(datetime) 
numdays = 10 
dates = pd.date_range(start_date, periods=numdays) 

#Generate data example 
data1 = [(random()+idx)**1.2 for idx in range(len(dates))] 
data2 = [(random()+idx)**1.5 for idx in range(len(dates))] 

#plot 
fig, ax = plt.subplots() 
ax.plot_date(dates, data1, '-') 
ax.plot_date(dates, data2, '-') 

#set the label for x and y and title 
plt.title('Matplot lib dates wc example') 
plt.xlabel('Dates') 
plt.ylabel('Random values example') 

#date format 
ax.fmt_xdata = DateFormatter('%Y%m%d') 
ax.grid(True) 
fig.autofmt_xdate() 

plt.show() 

正常にテストPythonのバージョン:2.7.12
このコードが生成されます。this follow plot

関連する問題