数据科学 第 4 章 1-3 画图的简单设置

第 4 章是讲用matplotlib画图

期待已久的内容,用可视化展示数据比丢一张数据表给他好的多,在建模的时候先画个图会清晰不少,下面进入正题:

数据源:当然是上一章最后一节的提取了小时的sougou数据

第一节:保存
就是教你怎么保存画的图,然后再打开它。
保存:fig.savefig('myfigure.png')
打开:Image('myfigure.png') 执行打开的时候要先加载一个包: from IPython.display import Image

第二节:画2个图的方法

-- matlab风格

plt.figure()
plt.subplot(2,1,1)
plt.plot(df.ranks,df.numbers)
plt.subplot(2,1,2)
plt.plot(df.numbers, df.ranks)

-- 面向对象画图

fig,ax = plt.subplots(2)
ax[0].plot(df['rank'],df.hours)
ax[1].plot(df['number'],df.hours)
clipboard.png

第 3 节:简易线型图
先设置fig, ax。 fig是一个可以装图形、文字的容器;ax是带有刻度和标签的矩形。设置好之后再用ax.plot画图

fig = plt.figure()
ax = plt.axes()
ax.plot(df['number'],df['rank'])  

-- 穿插一个小插曲:在用sogou数据画图的时候,出现这个提示:

ValueError: x and y must have same first dimension, but have shapes (1,) and (823818,) 用df.rank查看数据时,出现的是多列数据,而不是一列,所以画图的时候出现了x,y没有相同的坐标。
clipboard.png
晚上问的大神,他说你先用df['rank']试下能不能正常显示,结果是正常的。那可能是df.rank是调用了内置函数,以后用中括号就可以了。

-- 线条的颜色、风格

color = '' 颜色支持英文、代码、灰度、16进制、RGB、HTML颜色
linestyle = '' 线条的样式,比如---.:等

df.groupby('hours')['hours'].count().plot(color = 'g',linestyle = ':')

-- 设置坐标轴上下限

有两种方法,效果是一样的

#设置 x, y 轴的起始值
df.groupby('hours')['hours'].count().plot(color = 'g',linestyle = ':')
plt.xlim(0,30)   #只能设置范围,不能规定跨度 
plt.ylim(10000,100000)

#方法2:
df.groupby('hours')['hours'].count().plot(color = 'g',linestyle = ':')
plt.axis([0,25,0,120000])   # plt.axis('')有很其他的功能,可以查看文档

clipboard.png

显示图例

图例是label,设置好图例后要用plt.legend()才能打印图例

df.groupby('hours')['rank'].sum().plot(color = 'r',linestyle = ':',label="The red data")
df.groupby('hours')['hours'].count().plot(color = 'g',label = "search/hour")
plt.legend()   # legend(lable = ['',''], loc = '')   label是图例的名称,同上;loc是图例的位置

clipboard.png

你可能感兴趣的:(画图,python)