第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

突出顯示條形圖中的特定條形

突出顯示條形圖中的特定條形

繁星點點滴滴 2021-07-22 22:14:18
我有兩個數(shù)據(jù)框df1和df2. df2是 的子集df1。我想繪制df1已識別df2行(不同的條形顏色或其他東西)的水平條形圖。謝謝你。%matplotlib inline import pandas as pdimport matplotlib as pltd1 = {    'index' : [1, 2, 3, 4, 5],     'col1'  : [5, 8, 6, 4, 2]}d2 = {    'index' : [3, 5],     'col1'  : [6, 2]}df1 = pd.DataFrame(d1).set_index(["index"])df2 = pd.DataFrame(d2).set_index(["index"])df1.plot(kind="barh", grid=False)
查看完整描述

2 回答

?
寶慕林4294392

TA貢獻2021條經(jīng)驗 獲得超8個贊

我認為要走的路是連接數(shù)據(jù)幀并為缺失值附加 nans


import pandas as pd

import matplotlib.pyplot as plt


d1 = {

    'index' : [1, 2, 3, 4, 5], 

    'col1'  : [5, 8, 6, 4, 2]

}


d2 = {

    'index' : [3, 5], 

    'col1'  : [6, 2]

}


df1 = pd.DataFrame(d1).set_index(["index"])

df2 = pd.DataFrame(d2).set_index(["index"])


plotThis = pd.concat([df1, df2], axis = 1, ignore_index = True)


plotThis.plot(kind = 'barh')


查看完整回答
反對 回復(fù) 2021-07-27
?
鳳凰求蠱

TA貢獻1825條經(jīng)驗 獲得超4個贊

不幸的是,pandas 的barh功能不允許我們?yōu)槊總€條形選擇不同的顏色。但既然情況似乎如此,我會選擇不使用 Pandas 繪圖函數(shù),而是直接使用 matplotlib 的函數(shù)。


在這種情況下,有很多方法可以達到預(yù)期的結(jié)果。這是一種選擇:


fig, ax = plt.subplots()

c = ['C2' if i in df2.index else 'C1' for i in df1.index]

ax.barh(y=df1.index,width=df1.col1,color=c)

ax.grid(False)

http://img1.sycdn.imooc.com//60ffb7cf0001590405860446.jpg

df3 = df1.loc[df1.index.difference(df2.index)].append(df2, sort=False).sort_index()

df3.plot(kind='barh', stacked=True, grid=False)

第一行創(chuàng)建一個具有以下內(nèi)容的新數(shù)據(jù)框:


    col1    col2

index       

1   5.0     NaN

2   8.0     NaN

3   NaN     6.0

4   4.0     NaN

5   NaN     2.0

繪制此數(shù)據(jù)框會產(chǎn)生所需的輸出。

http://img1.sycdn.imooc.com//60ffb7dc00016ea106440463.jpg

查看完整回答
反對 回復(fù) 2021-07-27
  • 2 回答
  • 0 關(guān)注
  • 256 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號