Pandas:绘制显示所有标签的过滤数据框
Pandas: plot a filtered dataframe showing all labels
我到处寻找答案,但我无法解决这个问题...
我需要使用 pandas:
绘制过滤数据框的条形图
import pandas as pd
import matplotlib.pyplot as plt
nestedDict = {'A': {'apples': 3,
'bananas': 5,
'oranges': 6,
'kiwis': 9},
'B': {'dog': 1,
'bananas': 9,
'oranges': 3,
'kiwis': 1},
'C': {'rain': 6,
'bananas': 9,
'oranges': 3,
'kiwis': 3}}
def plot_lig():
df = pd.DataFrame.from_dict(nestedDict)
df.index = df.index.str.split()
df.index.name = 'residue'
df2 = df[df <= 6].dropna()
df2.plot(kind='bar')
plt.show()
plt.close()
plot_lig()
当我运行这个函数时条形图只显示“橘子”。
如果我删除 .dropna,它会包含 X 轴上的所有标签(所有刻度),即使由于过滤器而不会绘制过滤结果。
我想绘制我过滤后的选择的所有结果,丢弃过滤后的数据及其相应的 x 刻度。
再次感谢!
已解决:
nestedDict = nestedDict[nestedDict <= -0.25] #set filter first
nestedDict.dropna(how='all', inplace=True) #added the 'all' keyword makes you keep the columns with single outliers
df2.plot(kind='bar', edgecolor='black')
plt.legend(['X var', 'Y var', 'Z var'])
plt.show()
plt.close()
希望这对其他人有帮助!
我到处寻找答案,但我无法解决这个问题...
我需要使用 pandas:
绘制过滤数据框的条形图import pandas as pd
import matplotlib.pyplot as plt
nestedDict = {'A': {'apples': 3,
'bananas': 5,
'oranges': 6,
'kiwis': 9},
'B': {'dog': 1,
'bananas': 9,
'oranges': 3,
'kiwis': 1},
'C': {'rain': 6,
'bananas': 9,
'oranges': 3,
'kiwis': 3}}
def plot_lig():
df = pd.DataFrame.from_dict(nestedDict)
df.index = df.index.str.split()
df.index.name = 'residue'
df2 = df[df <= 6].dropna()
df2.plot(kind='bar')
plt.show()
plt.close()
plot_lig()
当我运行这个函数时条形图只显示“橘子”。
如果我删除 .dropna,它会包含 X 轴上的所有标签(所有刻度),即使由于过滤器而不会绘制过滤结果。
我想绘制我过滤后的选择的所有结果,丢弃过滤后的数据及其相应的 x 刻度。
再次感谢!
已解决:
nestedDict = nestedDict[nestedDict <= -0.25] #set filter first
nestedDict.dropna(how='all', inplace=True) #added the 'all' keyword makes you keep the columns with single outliers
df2.plot(kind='bar', edgecolor='black')
plt.legend(['X var', 'Y var', 'Z var'])
plt.show()
plt.close()
希望这对其他人有帮助!