15.1生成数据
matplotlib:是一个数学绘图库,使用它可以制作简单的图标。
pygal包:专注于生成适合在数字设备上显示的图标。通过使用pygal,可以在与图表交互时突出元素以及调整大小,还可以轻松调整整个图表的尺寸。pygal我自己的理解是python graphics adapt library,即python图形适配器。
这两个部分安装就不叙述了,书上有的。安装后在解释器中运行:
import matplotlib
如果没有任何出错信息,说明安装正确。
另外,要查看由matplotlib制作的各种图表,请访问:https://matplotlib.org/示例的画廊。单击画廊中的图表,就可以查看用于生成图表的代码。
15.2 绘制简单的折线图
#导入pyplot,并指定了别名plt,避免反复键入pyplot import matplotlib.pyplot as plt # squares = [1,4,9,16,25,36,49] plt.plot(squares) plt.show()
注意:我自己实践,可以吧import matplot.pyplot 写成如下形式
from matplotlib import pyplot
运行后,得到如下图像
15.2.1修改标签文字和线条粗细
上图中的图标标签太小,线条太细,下面自己定制。
import matplotlib.pyplot as plt
squares = [1,4,9,16,25,36,49]
#linewidth决定了plot画的线条的粗细
plt.plot(squares,linewidth=5)
#设置图标标题,并加上标签
plt.title("Squares Numbers",fontsize=24)
plt.xlabel("Value:",fontsize=14) #加上x轴标签,字体14
plt.ylabel("Square of Value:",fontsize=14) #给y轴加上标签,字体14
#设置刻度标记的大小(也就是坐标轴上数字标记的大小)
plt.tick_params(axis='both',labelsize=14)
plt.show()
15.2.2矫正图形
图形绘制以后,我们发现没有正确地绘制数据:折线图的终点指出6的平方为49,下面来修复这个问题。
当你向plot提供一系列的数字时,它假设第一个数据点对应的x坐标纸为0,但我们的第一个点对应的值x为1,为了改变这种默认的行为,我们可以给plot()同时提供输入值和输出值:
...snip... inputvalues = [1,2,3,4,5,6,7] squares = [1,4,9,16,25,36,49] #linewidth决定了plot画的线条的粗细 plt.plot(inputvalues,squares,linewidth=5) #同时提供输入值和输出值 ...snip...
plt还可以指定更多的实际参数。后路将会学习到。
总结(仿照mysql语句语法格式,[]内部分是可以省略的部分),有的时候[]代表一个列表,大家可以自己尝试运行代码进行鉴别:
(1)导入库下面的方法
import matplotlib.pyplot as plt
或者
from matplotlib import pyplot as plt
(2)画图函数
plt.plot(inputvalues,outputvalues,line_width=NUM)
plt.scatter(xvalues,yvalues,s=SQUARevalUES)表示画散点图,s代表每个点内由多少个像素组成,
这里面有个edgecolor表示有没有轮廓,默认有轮廓,但是我试了下,指定edgecolor='none'后,效果完全一样的。
形如参数c='red',表示指定颜色的参数。对plot和scatter都是适用的。c也可以用rgb颜色模式指定,
例如:c=(0,0,0.2),当值越大,颜色越深,值越小,颜色越淡。
#下面plot函数内的[]不是可省略的意思,是指的一个列表
(3)设置标题,x轴,y轴标签,下面三个函数参数设置方法一致
plt.title("title_contents",fontsize=NUM)
plt.xlabel(...)
plt.ylabel(...)
(4)设置坐标轴刻度大小的函数
plt.tick_params(axis='both',labelsize=NUM)
(5)指定x和y坐标范围(xmaximum和ymuximum分别是x和y坐标的最大值)
plt.axis([0,xmaximum,0,ymaximum])
plt.plot([xvalues_list],y_values,line_width=WIDTH_VALUE),line_width 表示线的宽度是多少像素
(7)显示函数
plt.show() 显示画的图形并且结束程序
plt.savefig('PICTURE_NAME',bbox_inches='tight'),第一个参数表示图像名称,第二个参数表示裁剪多余的部分,tight表示紧身的,代表将裁剪多余的部分
注意:bbox_inches='tight'只是删除图形周围的所有额外空白区域,它在渲染完成后并未实际重新排列图形中的任何内容。



