1.绘制简单的折线图
import matplotlib.pyplot as plt
squres = [1, 4, 9, 16, 25]
plt.plot(squres)//把列表传给plot(),这个函数尝试根据这些数字绘制出有意义的图形
plt.show()//打开matplotlib查看器,并显示绘制的图形
2.修改标签文字和线条粗细
import matplotlib.pyplot as plt
squares = [1, 4, 9, 16, 25]
plt.plot(squares, linewidth=5)//设置绘制线条的粗细
plt.title("Square Numbers",fontsize=24)//给图表指定标题,fontsize指定了文字大小
plt.xlabel("Value", fontsize=14)//xlable()和ylable()能够为每条轴设置标题
plt.ylabel("Square of Value", fontsize=14)
plt.tick_params(axis='both',labelsize=14)//tick_params()设置刻度的样式,其中指定的实参将影响x轴和y轴上的刻度(axis='both'),并将刻度标记的字号设置为14(labelsize=14)
plt.show()
3.矫正图形
根据上图我们不难发现,我们画出的图并没有正确的绘制数据:折现图的终点指出4的平方为25.现在我们就要来修复这个问题
当我们向plot()提供一系列数字时,它假设第一个数据点对应的x坐标值为0,但我们的第一个点对应的x的值为1.为改变这种默认行为,我么好可以给plot()同时提供输入值和输出值。
import matplotlib.pyplot as plt
input_values = [1, 2, 3, 4, 5]
squres = [1, 4, 9, 16, 25]
plt.plot(input_values, squres, linewidth=5)
plt.title("Square Numbers", fontsize=24)
plt.xlabel("Value", fontsize=14)
plt.ylabel("Square of Value", fontsize=14)
plt.tick_params(axis='both', labelsize=14)
plt.show()
4.使用scatter()绘制散点图并设置其样式
(1)要绘制单个点,可使用scatter(),并向它传递一对x和y坐标,它将在指定位置绘制一个点
import matplotlib.pyplot as plt
plt.scatter(2, 4, s=200)//实参s设置了绘制图形时使用的点的尺寸
plt.title("Square Numbers", fontsize=24)
plt.xlabel("Value", fontsize=14)
plt.ylabel("Square of Value", fontsize=14)
plt.tick_params(axis='both', which='major',labelsize=14)
plt.show()
(2)使用scatter()绘制一系列点
要绘制一系列的点,可向scatter()传递两个分别包含x值和y值的列表
import matplotlib.pyplot as plt
x_values = [1, 2, 3, 4, 5]
y_values = [1, 4, 9, 16, 25]
plt.scatter(x_values, y_values, s=100)
plt.title("Square Numbers", fontsize=24)
plt.xlabel("Value", fontsize=14)
plt.ylabel("Square of Value", fontsize=14)
plt.tick_params(axis='both', which='major',labelsize=14)
plt.show()
5.自动计算数据
import matplotlib.pyplot as plt
x_values = list(range(1, 1001))
y_values = [x**2 for x in x_values]
plt.scatter(x_values, y_values, s=3)
plt.title("Square Numbers", fontsize=24)
plt.xlabel("Value", fontsize=14)
plt.ylabel("Square of Value", fontsize=14)
plt.tick_params(axis='both', which='major', labelsize=14)
plt.axis([0, 1100, 0, 1100000])#设置每个坐标轴的取值范围
plt.show()
6.删除数据点的轮廓
matplotlib允许我们给散点图中的各个点指定颜色。默认为蓝色点和黑色轮廓,在散点图数据点不多时效果很好。但绘制很多点时,黑色轮廓可能会粘在一起。要删除数据点的轮廓,可在调用scatter()时传递实参edgecolor='none':
plt.scatter(x_values,y_values,edgecolor='none',s=3)
7.自定义颜色
要修改数据点的颜色,可向scatter()传递参数c,并将其设置为要使用的颜色名称
plt.scatter(x_values,y_values,c='red',edgecolor='none',s=3)
同时,我们还可以使用RGB颜色模式自定义颜色。要指定自定义颜色,可传递参数c,并将其设置为一个元组,其中包含三个0~1之间的小数值,他们分别表示红色,绿色和蓝色分量。例如:
plt.scatter(x_values,y_values,c=(0,0,0.8),edgecolor='none',s=3)
值越接近0,指定的颜色越深,值越接近1,指定的颜色越浅
8.使用颜色映射
颜色映射是一系列颜色,他们从起始颜色渐变到结束颜色。在可视化,颜色映射用于突出数据的规律,例如,我们可能用较钱的颜色来显示较大的值。
模块pyplot内置了一组颜色的映射。要使用这些颜色映射,你需要告诉pyplot该如何设置数据集中每个点的颜色。下面演示了如何根据每个点的y值来设置其颜色:
import matplotlib.pyplot as plt
x_values = list(range(1, 1001))
y_values = [x**2 for x in x_values]
plt.scatter(x_values,y_values,c=y_values,cmap=plt.cm.Blues,edgecolor='none',s=3)
plt.title("Square Numbers", fontsize=24)
plt.xlabel("Value", fontsize=14)
plt.ylabel("Square of Value", fontsize=14)
plt.tick_params(axis='both', which='major', labelsize=14)
plt.axis([0, 1100, 0, 1100000])#设置每个坐标轴的取值范围
plt.show()
9.画一个直方图
import matplotlib.pyplot as plt
import numpy as np
import matplotlib
matplotlib.rcParams['font.sans-serif']=['SimHei'] #用黑体表示中文
matplotlib.rcParams['axes.unicode_minus']=False #正常显示负号
data = np.random.randn(10000)
# bins:直方图长条形数目,可选项,默认为10
# normed:是否将得到的直方图向量规一化,可选项,默认为0,代表不规一化,显示频数。normed=1,表示规一化,显示频率
# facecolor:长条形的颜色
# edgecolor:长条形边框的颜色
# alpha:透明度
plt.hist(data, bins=40, facecolor='blue', edgecolor='black', alpha=0.7)
plt.xlabel("区间", fontsize=14)
plt.ylabel("频数/频率",fontsize=14)
plt.title("频数/频率直方图",fontsize=24)
plt.show()
10.条形图
import matplotlib.pyplot as plt
import matplotlib
matplotlib.rcParams['font.sans-serif'] = ['SimHei']
matplotlib.rcParams['axes.unicode_minus'] = False
plt1 = plt.subplot(2, 2, 1)
plt2 = plt.subplot(2, 2, 2)
plt3 = plt.subplot(2, 2, 3)
plt4 = plt.subplot(2, 2, 4)
# left:长条形中点横坐标
# height:长条形高度
# width:长条形的宽度,默认值0.8
label_list = ['2011', '2012', '2013', '2014']
num_list1 = [10, 15, 20, 25]
num_list2 = [5, 15, 25, 35]
x = list(range(len(label_list)))
plt1.barh(label_list, num_list1, fc='purple', ec='black')
plt2.bar(label_list, num_list2, color='rgyb', width=0.4, ec='black')
# 画堆叠柱状图
plt3.bar(label_list, num_list1, fc='b', label='boy', width=0.4)
plt3.bar(label_list, num_list2, bottom=num_list1, label='girl', fc='r', width=0.4)
plt3.legend()
# 画并列柱状图
plt4.bar(x, num_list1, width=0.4, fc='g', label='boy')
for i in range(len(x)):
x[i] = x[i] + 0.4
plt4.bar(x, num_list2, width=0.4, label='girl', tick_label=label_list, fc='y')
plt4.legend()
plt.show()