之前学习了一些通用的画图方法和技巧,这次就学一下其它各种不同类型的图。好了先从散点图开始,上代码:
from matplotlib import pyplot as plt import numpy as np n = 1024 #生成1024个点 x = np.random.normal(0, 1, n) #正态分布x坐标,均值0标准差1 y = np.random.normal(0, 1, n) #正态分布y坐标,均值0标准差1 color = np.arctan2(y, x) #这个用于渲染好看的颜色,自己琢磨意义,哈哈 plt.scatter(x, #x坐标 y, #y坐标 s=50, #点的大小 c=color, #颜色 alpha=0.5, #透明度 cmap='magma' #颜色板,看文档或者源码有很多类型,自己可以试试,如summer、winter、pink ) plt.show()
散点图还是比较简单,关于一些常用设置,如坐标、图例、文字等可以看我之前的学习文章,还有就是很多参数这些看看api或者源码都能搞懂的。
接下来是简单用一下条形图:
from matplotlib import pyplot as plt import numpy as np n = 12 x = np.arange(12) #12个条形 y1 = np.random.uniform(1, 10, n) #分布1-10的高度 y2 = -np.random.uniform(1, 10, n) #分布(-1)-(-10)的高度 plt.bar(x, y1) plt.bar(x, y2) #接下来在条形上下方加上数值 for x0,y0 in zip(x, y1): plt.text(x0, y0, '%.2f' % y0, #保留两位小数 ha='center', #水平对齐方式 va='bottom' #垂直对齐方式 ) for x0, y0 in zip(x, y2): plt.text(x0, y0, '%.2f' % y0, # 保留两位小数 ha='center', # 水平对齐方式 va='top' # 垂直对齐方式 ) plt.show()
好了,一个双层的条形图就完成了。其它还有什么饼图、直方图、等高线图等待很多,就不一一写出来了,接下来再弄一弄在一个figure显示多个图吧
其实很简单了,这里要用到subplot(n,m,d)将图分成n行m列,添加地d个格子的图像,接下来偷懒了,就用上面两个例子放一起就好了
from matplotlib import pyplot as plt import numpy as np plt.figure(num=1, figsize=(12, 6))#设置figure属性,因为要放两张图,这里把宽度弄大点 plt.subplot(1, 2, 1)#1行2列第一个格子ax画图 n = 12 x = np.arange(12) #12个条形 y1 = np.random.uniform(1, 10, n) #分布1-10的高度 y2 = -np.random.uniform(1, 10, n) #分布(-1)-(-10)的高度 plt.bar(x, y1) plt.bar(x, y2) #接下来在条形上下方加上数值 for x0,y0 in zip(x, y1): plt.text(x0, y0, '%.2f' % y0, #保留两位小数 ha='center', #水平对齐方式 va='bottom' #垂直对齐方式 ) for x0, y0 in zip(x, y2): plt.text(x0, y0, '%.2f' % y0, # 保留两位小数 ha='center', # 水平对齐方式 va='top' # 垂直对齐方式 ) #到这里都是第一个ax格子的图像 plt.subplot(1, 2, 2)#开始在的二个ax画图 n = 1024 #生成1024个点 x = np.random.normal(0, 1, n) #正态分布x坐标,在0-1范围 y = np.random.normal(0, 1, n) #正态分布y坐标,在0-1范围 color = np.arctan2(y, x) #这个用于渲染好看的颜色,自己琢磨意义,哈哈 plt.scatter(x, #x坐标 y, #y坐标 s=50, #点的大小 c=color, #颜色 alpha=0.5, #透明度 cmap='magma' #颜色板,看文档或者源码有很多类型,自己可以试试,如summer、winter、pink ) plt.show()
plt.figure()里面还有很多属性,比如背景颜色板,x和y轴是否共享坐标等等,自己看api和源码吧。哈哈,今天就到这儿。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:机器学习-数据可视化神器matplotlib学习之路(三) - Python技术站