这次来整理一波python用matplotlib
绘图的常用函数,以及如何修改默认死亡配色。
前期准备
导入包
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
基本设置
plt.figure() # 创建画布
plt.rcParams['font.sans-serif'] = ['SimHei'] # 设置字体,不然中文无法显示
plt.rcParams['figure.figsize'] = (8.0, 4.0) # 设置figure_size尺寸
#figsize(12.5, 4) # 设置 figsize
plt.rcParams['savefig.dpi'] = 300 #保存图片分辨率
plt.rcParams['figure.dpi'] = 300 #分辨率
# 默认的像素:[6.0,4.0],分辨率为100,图片尺寸为 600&400
# 指定dpi=200,图片尺寸为 1200*800
# 指定dpi=300,图片尺寸为 1800*1200
plt.rcParams['image.interpolation'] = 'nearest' # 设置 interpolation style
plt.rcParams['image.cmap'] = 'gray' # 设置 颜色 style
plt.savefig('plot1.png', dpi=300) #指定分辨率保存
折线图
plt.plot(index, value, label='频率')
plt.grid(axis="y") # 坐标网格
plt.legend() # 图例
plt.xlabel('迭代次数') # x轴标题
plt.ylabel('亲缘度') # y轴标题
plt.xticks(size = 9,rotation = 30) # x轴标签旋转
柱状图
data = [5, 20, 15, 25, 10]
plt.bar(data)
plt.show()
饼图
plt.pie(x, explode=None, labels=None,
colors=('b', 'g', 'r', 'c', 'm', 'y', 'k', 'w'),
autopct=None, pctdistance=0.6, shadow=False,
labeldistance=1.1, startangle=None, radius=None,
counterclock=True, wedgeprops=None, textprops=None,
center = (0, 0), frame = False )
'''
x (每一块)的比例,如果sum(x) > 1会使用sum(x)归一化
labels (每一块)饼图外侧显示的说明文字
explode (每一块)离开中心距离
startangle 起始绘制角度,默认图是从x轴正方向逆时针画起,如设定=90则从y轴正方向画起
shadow 是否阴影
labeldistance label绘制位置,相对于半径的比例, 如<1则绘制在饼图内侧
autopct 控制饼图内百分比设置,可以使用format字符串或者format function
'%1.1f'指小数点前后位数(没有用空格补齐)
pctdistance 类似于labeldistance,指定autopct的位置刻度
radius 控制饼图半径
'''
修改配色
默认的配色是真的丑,连我这种直男都看不下去了,虽然可以手动调整每一块的颜色,但这实在太艰难了。
尝试了几种方法,最后还是采用了这篇文章中的方法。
安装brewer2mpl
直接pip install brewer2mpl
即可。
导入使用
这里给个例子:
import brewer2mpl
# 参照下方配色方案,第三参数为颜色数量,这个例子的范围是3-12,每种配色方案参数范围不相同
bmap = brewer2mpl.get_map('Set3', 'qualitative', 10)
colors = bmap.mpl_colors
plt.figure()
plt.rcParams['font.sans-serif'] = ['SimHei']
# 对于饼图
plt.pie(sub_count, labels=[x[0] for x in subjects], colors=colors)
# 或者直接修改配色方案
plt.rcParams['axes.color_cycle'] = colors
附上配色方案:
来看看效果,比原来的死亡配色好看多了。