Python数据可视化笔记01--Matplotlib基础
本文索引:
- 折线图实战
- 散点图实战
实验环境:Windows10+jupyter notebook
一、折线图
- 折线图通常用来表示数据随时间或有序类别变化的趋势。
- 最简单的折线图示例
import matplotlib.pyplot as plt
data = [1,2,3,4,5,4,2,4,6,7] # 随意创建的数据
plt.plot(data) # 引用matplotlib库中的pyplot模块图
plt.show()
运行结果:
- plot()函数的第一个参数表示横坐标数据
- 第二个参数表示纵坐标数据
- 第三个参数表示颜色、线型和标记样式
- 颜色常用的有(r / g / b / c / m / y / k / w),分别表示红,绿,蓝,青,品红,黄等
- 线型常用的值有(- / -- / : / -.)
- 标记样式常用的值有(. / , / o / v / ^ / s / * / D / d / x / < / > / h / H / 1 / 2 / 3 / 4 /_ /|)
绘制多条曲线、曲线颜色、线型、标记等参数设置示例:
# 绘制多条曲线、曲线颜色、线型、标记等参数设置
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm # 图示字体设置所需模块
yy = [1,2,3,4,5,3,1,2,7,8] # 随意创建的数据
xx = [3,5,4,1,9,3,2,5,6,3]
zz = [2,2,4,7,4,8,2,4,5,6]
# 指定数据,颜色,线宽,线型,
plt.plot(yy,color='r',linewidth=5,linestyle=':',label='Data 1')
plt.plot(xx,color='g',linewidth=2,linestyle='--',label='Data 2')
plt.plot(zz,color='b',linewidth=0.5,linestyle='-',label='Data 3')
plt.legend(loc=2)
# 标题名称,字体设置
plt.xlabel('x轴',fontproperties='simhei')
plt.ylabel('y轴',fontproperties='simhei')
plt.title('折线图美化示例',fontproperties='simhei')
plt.ylim(0,10)
运行结果:
【折线图实战一】
- 已知王府井某小吃店2018年每个月份的营业额如下表所示。请使用matplotlib扩展库编写Python程序绘制折线图时对该小吃全年营业额进行可视化,并使用红色点划线连接每个月的数据,并在每个月份的数据处使用三角形标记。
月份123456789101112营业额(万元)5.27.75.85.77.39.218.714.620.5179.86.9
import matplotlib.pyplot as plt
month = list(range(1,13)) # 定义一个列表,范围为1-12
money = [5.2,7.7,5.8,5.7,7.3,9.2,18.7,14.6,20.5,17,9.8,6.9]
plt.plot(month,money,'r-.v') # 绘图,参数分别为横坐标,纵坐标,红色点划线
plt.xlabel('month',fontsize=14) # x轴标题,字体大小
plt.ylabel('money',fontsize=14) # y轴标题,字体大小
plt.title('earth',fontsize=18) # 图示标题,字体大小
plt.show()
运行结果:
二、散点图
- 在matplotlib中使用函数matplotlib.pyplot.scatter绘制散点图
matplotlib.pyplot.scatter(x,y,s=None,c=None,marker=None,cmap=None, norm=None,vmin=None,vmax=None,alpha=None,linewidths=None,verts=None, edgecolors=None,hold=None,data=None,**kwargs)
- 常用参数有:x,y组成了散点的坐标;s为散点的面积;c为散点的颜色(默认为蓝色‘b’);marker为散点的标记;alpha为散点的透明度(0与1之间的数,0位完全透明,1不完全不透明);linewidths为散点边缘的线宽;如果marker为None,则使用verts的值构建散点标记;edgecolors为散点边缘颜色。
绘制普通散点图,10个位置随机的散点图
import matplotlib.pyplot as plt
import numpy as np
N = 10
x = np.random.rand(N)
y = np.random.rand(N)
plt.scatter(x,y)
plt.show()
运行结果:
接下来,我们对图进行修改,我们可以对散点的大小进行修改:
import matplotlib.pyplot as plt
import numpy as np
N = 10
x = np.random.rand(N)
y = np.random.rand(N)
size = (30*np.random.rand(N))**2
plt.scatter(x,y,s=size)
plt.show()
运行结果:
再来看,如果我们更改散点图的散点颜色和透明度,颜色设为随机,透明度0.5
import matplotlib.pyplot as plt
import numpy as np
N = 10
x = np.random.rand(N)
y = np.random.rand(N)
# 散点大小随机
size = (30*np.random.rand(N))**2
# 散点颜色随机
color = np.random.rand(N)
plt.scatter(x,y,s=size,c=color,alpha=0.5)
plt.show()
运行结果:
再假如我们要修改散点的形状,改为上三角,只需要在scatter函数中增加一个参数marker:
import matplotlib.pyplot as plt
import numpy as np
N = 10
x = np.random.rand(N)
y = np.random.rand(N)
# 散点大小随机
size = (30*np.random.rand(N))**2
# 散点颜色随机
color = np.random.rand(N)
plt.scatter(x,y,s=size,c=color,alpha=0.5,marker='^')
plt.show()
运行结果:
再看如何一张图绘制两组数据:
import matplotlib.pyplot as plt
import numpy as np
N = 10
x1 = np.random.rand(N)
y1 = np.random.rand(N)
x2 = np.random.rand(N)
y2 = np.random.rand(N)
plt.scatter(x1,y1,alpha=0.5,marker='^')
plt.scatter(x2,y2,alpha=0.5,marker='o')
plt.show()
运行结果:
最后一个,我们为散点图增加实例:
import matplotlib.pyplot as plt
import numpy as np
N = 10
x1 = np.random.rand(N)
y1 = np.random.rand(N)
x2 = np.random.rand(N)
y2 = np.random.rand(N)
# 增加图例形状参数
plt.scatter(x1,y1,alpha=0.5,marker='^',label='triangle')
plt.scatter(x2,y2,alpha=0.5,marker='o',label='cicle')
plt.legend(loc='best') # 自动适应图例位置
plt.show()
运行结果:
数据可视化部分的内容比较简单,但还是要亲手操作一下才能更好的记忆,以方便后面我们学习机器学习更灵活的使用,一起加油。
>> end