我有一个看似简单的问题,我不知道。下面的代码生成下面的图表。
df = pd.DataFrame({.5:[0,0,0], .6:[1,2,1], .7:[7,8,6], .8:[23,33,21], .9:
[84,126,76] }, index=['Desktop', 'Mobile', 'Table'])
df.T.plot(figsize=(10,10))
这几乎是我想要的,但是我需要在Y轴上显示百分位数,在X轴上显示天数。感谢您的帮助。
答案 0 :(得分:1)
您需要将数据清理为tidy格式,然后指定matplotlib轴以及显式的x-和y-值:
from matplotlib import pyplot
import pandas
df = pandas.DataFrame({
0.5: [0, 0, 0],
0.6: [1, 2, 1],
0.7: [7, 8, 6],
0.8: [23, 33, 21],
0.9: [84, 126, 76]
}, index=['Desktop', 'Mobile', 'Tablet'])
fig, ax = pyplot.subplots()
groups = (
df.T
.stack()
.rename_axis(['pctile', 'device'])
.to_frame('days')
.reset_index()
.groupby(by=['device'])
)
for device, g in groups:
g.plot.line(ax=ax, x='days', y='pctile', label=device)