我有一個3列的數據框:其中一個是「groupby」列,另外兩個是具有值的「正常」列。我想要生成一個boxplot和一個條形圖。在條形圖上,我想要顯示每個組元素的出現次數。讓我的示例代碼告訴這個數據幀中更詳細:Python熊貓繪製移位x軸如果twinx兩個y軸
li_str = ['one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten']
df = pd.DataFrame([[i]+j[k] for i,j in {li_str[i]:np.random.randn(j, 2).tolist() for i,j in \
enumerate(np.random.randint(5, 15, len(li_str)))}.items() for k in range(len(j))]
, columns=['A', 'B', 'C'])
所以上面我產生隨機數的隨機數到li_str
每一個元素,我做它列B
和C
。
然後我可視化只的箱線圖:
fig, ax = plt.subplots(figsize=(16,6))
p1 = df.boxplot(ax=ax, column='B', by='A', sym='')
現在我形象化元件每個基團具有的數量(所以我np.random.randint(5, 15, len(li_str))
代碼上述生成的隨機數) :
fig, ax = plt.subplots(figsize=(16,6))
df_gb = df.groupby('A').count()
p2 = df_gb['B'].plot(ax=ax, kind='bar', figsize=(16,6), colormap='Set2', alpha=0.3)
plt.ylim([0, 20])
,現在我想一個圖這兩個:
fig, ax = plt.subplots(figsize=(16,6))
ax2 = ax.twinx()
df_gb = df.groupby('A').count()
p1 = df.boxplot(ax=ax, column='B', by='A', sym='')
p2 = df_gb['B'].plot(ax=ax2, kind='bar', figsize=(16,6)
, colormap='Set2', alpha=0.3, secondary_y=True)
plt.ylim([0, 20])
有誰知道爲什麼我的箱線圖被右移一個x軸的刻度?我使用Python 3.5.1,pandas 0.17.0,matplotlib 1.4.3
謝謝!!!
謝謝我的問題是現在我想繪製平均值(這是一條簡單的線),但matplotlib'plt.plot()'和pandas'df.plot()'都適用於我。說我不能指定這些功能的xticks :( – ragesz