matplotlib的初次使用
Posted binryang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matplotlib的初次使用相关的知识,希望对你有一定的参考价值。
初次尝试python的matplotlib,因为论文有一堆数据要处理,只能自学。就是所谓的用到什么学什么吧。
下面记录一下:首先统计所有阈值的频率,用dictionary来存储;参考官方网址对plt.bar()的各个参数解释,建立相应的柱状图。
代码如下:
# encoding:utf-8
import numpy as np
import math
from matplotlib import pyplot as plt
# 0的字典
dic0 = {}
# 1的字典
dic1 = {}
def autolabel(rects):
for rect in rects:
height = rect.get_height()
plt.text(rect.get_x() + rect.get_width() / 2. - 0.2, 1.03 * height, ‘%d‘ % height)
total_width,n = 0.4,2
width = total_width/n
with open(r‘/Users/binryang/Desktop/运行结果/balloons_qp25_16.txt‘, ‘r‘) as f:
for line in f:
a = line.split()
key = int(math.ceil(float(a[1])))
if key == 0 or key > 10:
continue
if a[0] == ‘0‘:
if key in dic0.keys():
dic0[key] = dic0[key] + 1
else:
dic0[key] = 1
else:
if key+width in dic1.keys():
dic1[key+width] = dic1[key+width] + 1
else:
dic1[key+width] = 1
# items0 = dic0.items()
# items0.sort()
#
# items1 = dic1.items()
# items1.sort()
#
# print dic0
# print dic1
# plt.figure()
# plt.plot(dic0.keys(),dic0.values())
# plt.plot(dic1.keys(),dic1.values())
m = plt.bar(dic0.keys(), dic0.values(),width,label=‘no-division‘)
n = plt.bar(dic1.keys(),dic1.values(),width,label=‘division‘)
autolabel(m)
autolabel(n)
plt.xlabel(‘difference value‘)
plt.ylabel(‘numbers‘)
plt.title(‘numbers of difference value‘)
plt.legend()
# plt.xticks(dic0.keys())
# plt.subplot(212)
# plt.bar(dic1.keys(),dic1.values())
# plt.xlabel(‘difference value‘)
# plt.ylabel(‘numbers‘)
# plt.xticks(dic1.keys())
plt.savefig(‘bar.pdf‘)
plt.show()
生成的图片如下:
吐槽一下:插入图片不能用pdf,导致放大失真严重
以上是关于matplotlib的初次使用的主要内容,如果未能解决你的问题,请参考以下文章
为啥代码片段在 matplotlib 2.0.2 上运行良好,但在 matplotlib 2.1.0 上引发错误
git项目初次push提示error: failed to push some refs to https://gitee.com/xxxx/gittest.git’解决方案 --九五小庞(代码片段
在 matplotlib 内联和 QT 后端之间切换 Python 脚本