Posted in Python onDecember 09, 2017
要绘制单个点,可使用函数scatter(),并向其传递一对x和y坐标,它将在指定位置绘制一个点:
"""使用scatter()绘制散点图""" import matplotlib.pyplot as plt plt.scatter(2, 4) plt.show()
下面来设置输出的样式:添加标题,给轴加上标签,并确保所有文本都大到能够看清。并使用scatter()绘制一系列点
"""使用scatter()绘制散点图""" import matplotlib.pyplot as plt x_values = range(1, 6) y_values = [x*x for x in x_values] ''' scatter() x:横坐标 y:纵坐标 s:点的尺寸 ''' plt.scatter(x_values, y_values, s=50) # 设置图表标题并给坐标轴加上标签 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()
手工计算列表要包含的值可能效率低下,需要绘制的点很多时尤其如此。可以不必手工计算包含点坐标的列表,而让Python循环来完成这种计算。
下面是绘制1000个点的代码:
"""使用scatter()绘制散点图""" import matplotlib.pyplot as plt x_values = range(1, 1001) y_values = [x*x for x in x_values] ''' scatter() x:横坐标 y:纵坐标 s:点的尺寸 ''' plt.scatter(x_values, y_values, s=10) # 设置图表标题并给坐标轴加上标签 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()
函数axis()要求提供四个值:x、y坐标轴的最小值和最大值。[xmin,xmax,ymin,ymax]
使用颜色映射:颜色映射是一系列颜色,它们从起始颜色渐变到结束颜色。在可视化中,颜色映射用于突出数据的规律,例如,你可能用较浅的颜色来显示较小的值,并使用较深的颜色来显示较大的值。
"""使用scatter()绘制散点图""" import matplotlib.pyplot as plt x_values = range(1, 1001) y_values = [x*x for x in x_values] ''' scatter() x:横坐标 y:纵坐标 s:点的尺寸 ''' plt.scatter(x_values, y_values, c=y_values, cmap=plt.cm.Blues, edgecolors='none', s=10) # 设置图表标题并给坐标轴加上标签 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()
将参数c设置成了一个y值列表,并使用参数cmap告诉pyplot使用哪个颜色映射。这些代码将y值较小的点显示为浅蓝色,并将y值较大的点显示为深蓝色。
总结
以上就是本文关于python学习之matplotlib绘制散点图实例的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!
python学习之matplotlib绘制散点图实例
- Author -
chipsKe声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@