Python错误:使用matplotlib

时间:2017-12-04 11:28:32

标签: python csv matplotlib scatter-plot

我是一个python新手,患有如何在matplotlib.pyplot中导入CSV文件 我想看看小时(=人们花了多少时间玩视频游戏)和等级(=游戏等级)之间的关系。然后我想用女性(1)和男性(0)之间的不同颜色的Tax绘制散点图。所以,我的x将是' hour'而且我的水平会很高。

我的数据csv文件如下所示:

          hour gender level
0            8    1   20.00
1            9    1   24.95
2           12    0   10.67
3           12    0   18.00
4           12    0   17.50
5           13    0   13.07
6           10    0   14.45
...
...
499         12    1  19.47
500         16    0  13.28

这是我的代码:

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

df=pd.read_csv('data.csv')
plt.plot(x,y, lavel='some relationship')
plt.title("Some relationship")
plt.xlabel('hour')
plt.ylabel('level')
plt.plot[gender(gender=1), '-b', label=female]
plt.plot[gender(gender=0), 'gD', label=male]
plt.axs()
plt.show()

我想绘制以下图表。因此,将有两行男性和女性。

y=level|           @----->male
       | @
       | *         *----->female
       |________________ x=hour

但是,我不知道如何解决这个问题。 我一直收到错误名字错误:名字'小时'没有定义。

1 个答案:

答案 0 :(得分:2)

可以这样做:

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

df = pd.DataFrame(data={"hour": [8,9,12,12,12,13,10], 
                        "gender": [1,1,0,0,0,0,0],
                        "level": [20, 24.95, 10.67, 18, 17.5, 13.07, 14.45]})

df.sort_values("hour", ascending=True, inplace=True)

fig = plt.figure(dpi=80)
ax = fig.add_subplot(111, aspect='equal')

ax.plot(df.hour[df.gender==1], df.level[df.gender==1], c="red", label="male")
ax.plot(df.hour[df.gender==0], df.level[df.gender==0], c="blue", label="female")
plt.xlabel('hour')
plt.ylabel('level')