绘制简单的折线图
新建mpl_squares.py
:
plt.show()
是打开matplotlib
查看器的命令
import matplotlib.pyplot as plt
squares = [1,4,9,16,25]
plt.plot = (squares)
plt.show() #打开matplotlib查看器
修改标签文字和线条粗细
import matplotlib.pyplot as plt
squares = [1,4,9,16,25]
plt.plot(squares, linewidth=5)
#设置图标标题,并给坐标轴加上标签
plt.title("quare Numbers",fontsize=24)
plt.xlabel("Value",fontsize = 14)
plt.ylabel("Squares of Value",fontsize = 14)
#设置刻度表及的大小
plt.tick_params(axis='both',labelsize = 14)
plt.show()
校正图形
上图根据x轴获取的平方值是错的(4的平方值是25是错误的),需要修正,使图表可正确绘制数据:
import matplotlib.pyplot as plt
input_values = [1, 2, 3, 4, 5] #添加x轴的数据
squares = [1, 4, 9, 16, 25]
plt.plot(input_values, squares, linewidth=5)
# 设置图表标题并给坐标轴加上标签
--snip--
使用scatter()
绘制散点图并设置其样式
要绘制单个点,可使用函数scatter()
,并向它传递一对 x
和y
坐标,它将在指定位置绘制一个点: scatter_squares.py
import matplotlib.pyplot as plt
plt.scatter(2, 4, s=200)
# 设置图表标题并给坐标轴加上标签
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()
还可以绘制多个散点:
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=200)
--snip--
自动计算数据
让Python循环来替我们完成这种计算:
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=40)
# 设置图表标题并给坐标轴加上标签
plt.title("Square Numbers", fontsize=24)
plt.xlabel("Value", fontsize=14)
plt.ylabel("Square of Value", fontsize=14)
# 设置每个坐标轴的取值范围
plt.axis([0,1100,0,1100000])
plt.show()
删除数据点的轮廓
matplotlib
散点默认有轮廓,在调用scatter()
时传递实参edgecolor='none' 可去掉轮廓:
plt.scatter(x_values, y_values, edgecolor='none', s=40)
自定义颜色
要修改数据点的颜色,可向scatter()
传递参数c
,并将其设置为要使用的颜色的名称,色值可以是颜色的英文拼写
,也可以是RGB颜色模式
,如下所示:
plt.scatter(x_values, y_values, c='red', edgecolor='none', s=40)
使用颜色映射
颜色映射即渐变色:
plt.scatter(x_values, y_values, c=y_values, cmap=plt.cm.Blues, edgecolor='none', s=40)
自动保存图表
要让程序自动将图表保存到文件中,可将对plt.show()
的调用替换为对plt.savefig()
的调用:
plt.savefig('squares_plot.png', bbox_inches='tight')