赞
踩
以下展示一些用 matplotlib 画条形图、折线图、饼图以及散点图的示例,其中类似于图例、坐标轴名称,标题等的显示方法是一样的,不另做介绍。
import random
import matplotlib.pyplot as plt
import matplotlib
#引入显示中文的黑体,如果中文显示乱码,解决方法参见我的上一篇博文
matplotlib.rcParams['font.family'] = "SimHei"
matplotlib.rcParams["font.size"] = 10 #字号
matplotlib.rcParams['font.style'] = 'italic' #字体样式 斜着
def plot_histogram():
x = list(range(7))
y = random.sample(range(1,10), 7)
plt.bar(x, y)
plt.xlabel('x轴')
plt.ylabel('y轴')
plt.title('条形图')
plt.show()
如上述代码所示,x 和 y 分别是生成的数据,
plt.bar() 则是画条形图的语法,
plt.xlabel() 和 plt.ylabel() 表示x轴和y轴下的标题,
plt.title() 则是整幅图的标题,
对于图片,我们可以使用 plt.shhow() 用来即时展示图片,也可以使用 plt.savefig(path) 来存储图片。
以下是运行上面这个函数的结果:
上面说过,matplotlib 的画图除了语法,其他类似于图例,标签,标题的用法和其他函数都一样,以下是折线图的一个示例:
def plot_line():
x = list(range(7))
y = random.sample(range(1,10), 7)
plt.plot(x, y, label='y',marker='.', color='blue')
plt.xlabel('x轴')
plt.ylabel('y轴')
plt.title('折线图')
plt.legend() #图例,用来表示图中线的信息
plt.show()
如上述代码,折线图的语法是 plt.plot(),后面的参数信息详解如下:
label 表示的是标签,用于图例中显示,
marker 表示的是折线的每个点的标记类型,示例中是 点,还可以是 * 表示 * 号、- 表示实线、-- 表示破折号等。
color 表示的是线条的颜色,可以是英文,也可以 RGB 代码这种像素来表示颜色,如 color=’#7834ff’。
plt.legend() 表示的是图例,在 matplotlib 中图例的位置是变化的,一般哪里有空位就跑到哪里去了,如果想要固定住,就需要额外用代码来调节。
以下是示例结果:
如果是要在一幅图里画多条折线,直接把 plt.plot() 这个函数再用一边即可:
def plot_line():
x = list(range(7))
y1 = random.sample(range(1,10), 7)
y2 = random.sample(range(1,10), 7)
plt.plot(x, y1, label='y1', marker='.', color='blue')
plt.plot(x, y2, label='y2', marker='*', color='green')
plt.xlabel('x轴')
plt.ylabel('y轴')
plt.title('折线图')
plt.legend()
plt.show()
以下是结果:
饼图的语法是 plt.pie(),如下是示例:
def plot_pie(): #这是每个部分的名称 name_list = ['part1','part2','part3','part4'] #这是每个部分对应的数据,与上述名称列表对应 num_list = [56,33,78,95] #explode 是用于着重的表示,某个值不为0表示对应某个部分离开圆心的距离 explode = (0,0,0.1,0) #每个部分所用的颜色 colors = ['orange', 'yellow', 'lime', 'red'] #如果画出来的圆是扁的,可以用以下三行代码把圆变成一个正圆 plt.xlim(0.8) plt.ylim(0.8) plt.axes(aspect='equal') plt.pie(num_list, labels=name_list, explode=explode, colors=colors) plt.title('饼图', fontsize=18) plt.legend() plt.show()
plt.pie() 的用法详情都在代码示例中说明了,如下是示例运行结果:
散点图的方法是 plt.scatter(),如下是使用示例:
def plot_scatter():
x = list(range(7))
y = random.sample(range(1,10), 7)
plt.scatter(x, y)
plt.title('散点图', fontsize=18)
plt.show()
使用方法就很简答,如下是运行结果:
好了,以上就是这几种图的语法,接下来如果有时间的话,还会涉及以下方面知识点:网格的绘制、坐标名称过长换行的处理、x 轴和 y 轴的变化范围的确定等。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。