【发布时间】:2020-07-20 14:06:58
【问题描述】:
python 新手并尝试在 matplotlib 中创建一些图。我的示例数据如下:
df = pd.DataFrame(
{
"Date": ["13/07/2020", "13/07/2020", "13/07/2020", "13/07/2020", "13-07-2020", "13-07-2020", "13-07-2020", "13-07-2020", "13-07-2020", "13-07-2020", "13-07-2020", "13-07-2020", "13-07-2020", "13-07-2020", "13-07-2020", "13-07-2020", "13-07-2020", "13-07-2020", "13-07-2020", "20-07-2020", "20-07-2020", "20-07-2020", "20-07-2020", "20-07-2020", "20-07-2020", "20-07-2020", "20-07-2020", "20-07-2020", "20-07-2020", "20-07-2020", "20-07-2020", "20-07-2020", "20-07-2020", "20-07-2020", "20-07-2020", "20-07-2020", "20-07-2020", "20-07-2020"],
"MasterCategory": ["X", "X", "X", "X", "X", "X", "X", "X", "X", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "X", "X", "X", "X", "X", "X", "X", "X", "X", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y"],
"Name": ["sddf", "sdasd", "fdf", "hfh", "rt", "rt", "ter", "ret", "ret", "gh", "fhgf", "r6", "gfh", "etr", "ert", "ery", "yeet", "hfh", "dth", "e", "eryru", "yu", "utyut", "yuy", "uyu", "uyu", "jy", "jyt", "e", "ter", "yeet", "yrt", "y", "yt", "ter", "ytr", "utr", "uru"],
"SubCategory": ["A", "A", "A", "B", "B", "B", "B", "B", "C", "D", "D", "D", "E", "E", "F", "F", "F", "F", "F", "A", "A", "A", "B", "B", "B", "B", "B", "C", "D", "D", "D", "E", "E", "F", "F", "F", "F", "F"],
"Age": [24, 35, 23, 34, 5, 56, 65, 44, 64, 24, 35, 23, 34, 5, 56, 65, 44, 64, 45, 21, 19, 34, 34, 3, 40, 48, 37, 70, 20, 35, 23, 34, 5, 56, 65, 44, 64, 45],
"Exp": [3, 4, 5, 7, 0, 12, 34, 13, 45, 3, 4, 5, 7, 0, 12, 34, 13, 45, 18, 3, 4, 5, 7, 0, 12, 34, 13, 45, 3, 4, 5, 7, 0, 12, 34, 13, 45, 18],
}
)
我的要求是我想创建与 MaterCategory 一样多的数字,并且每个数字将包含与具有两列的 SubCategory 一样多的行。第一个图包含前一周到当前周的每个名称的计数SubCategory 然后第二个图将包含 Age 和 Experience 的散点图,其中色调为 SubCategory 仅适用于最近一周。
情节应该是动态的,因为可以在适当的时候添加 MasterCategory 和 SubCategory,并且可以为现有的 MaterCategory 和 SubCategory 添加带有 Age 和 Exp 的名称
我一直在尝试编写下面的代码,首先动态找到 MasterCategory,然后是图中的轴数。
dfmastercategory = df['MaterCategory'].unique()
dfsubcategory= df['SubCategory'].unique()
for i in dfmastercategory:
print(f'fig{i}, axis=plt.subplot({len(dfsubcategory)},2,figsize=(5,5))')
for i in dfmastercategory:
for row in range(len(dfsubcategory)):
for column in range(2):
print((f'fig{i} , {row} , {column}'))
以上至少让我知道有 2 个主要类别和 6 个子类别。下面是我得到的输出。
figX, axis=plt.subplot(6,2,figsize=(5,5))
figX , 0 , 0
figX , 0 , 1
figX , 1 , 0
figX , 1 , 1
figX , 2 , 0
figX , 2 , 1
figX , 3 , 0
figX , 3 , 1
figX , 4 , 0
figX , 4 , 1
figX , 5 , 0
figX , 5 , 1
figY , 0 , 0
figY , 0 , 1
figY , 1 , 0
figY , 1 , 1
figY , 2 , 0
figY , 2 , 1
figY , 3 , 0
figY , 3 , 1
figY , 4 , 0
figY , 4 , 1
figY , 5 , 0
figY , 5 , 1
figY, axis=plt.subplot(6,2,figsize=(5,5))
figX , 0 , 0
figX , 0 , 1
figX , 1 , 0
figX , 1 , 1
figX , 2 , 0
figX , 2 , 1
figX , 3 , 0
figX , 3 , 1
figX , 4 , 0
figX , 4 , 1
figX , 5 , 0
figX , 5 , 1
figY , 0 , 0
figY , 0 , 1
figY , 1 , 0
figY , 1 , 1
figY , 2 , 0
figY , 2 , 1
figY , 3 , 0
figY , 3 , 1
figY , 4 , 0
figY , 4 , 1
figY , 5 , 0
figY , 5 , 1
然后我执行以下操作以生成空白图并收到以下错误:
for i in dfmastercategory:
print(f'fig{i}, axis=plt.subplot({len(dfsubcategory)},2,figsize=(5,5))')
for i in dfmastercategory:
for row in range(len(dfsubcategory)):
for column in range(2):
ax[row,column].plot()
index 2 is out of bounds for axis 0 with size 2
谢谢
【问题讨论】:
-
版主您好。我已经搜索了解决方案,但没有遇到相同的情况。如果可以为建议/方向打开相同的内容,我将不胜感激
-
有人有什么建议吗?
标签: python pandas matplotlib