plottools
plot_barline
plot_barslines
- dramkit.plottools.plot_barline.plot_barslines(df, bar_col_infos_left, line_col_infos_left=None, line_col_infos_right=None, label_bar_data=False, label_line_data=False, figsize=(11, 6), title=None, fontsize=15, fig_save_path=None, xtick_rotation=360)
绘制条形图叠加折线图
bar_col_infos_x格式:{col1: (clor1, lbl1), col2: (clor2, lbl2), ...}
line_col_infos_x格式:{col1: (styl1, lbl1), col2: (styl2, lbl2), ...}
plot_common
plot_series
- dramkit.plottools.plot_common.plot_series(data, cols_styl_up_left, cols_styl_up_right={}, cols_styl_low_left={}, cols_styl_low_right={}, cols_to_label_info={}, cols_to_fill_info={}, col_text_up={}, col_text_low={}, yscales=None, xparls_info={}, yparls_info_up=None, yparls_info_low=None, fills_yparl_up=None, fills_yparl_low=None, fills_xparl={}, twinx_align_up=None, twinx_align_low=None, ylabels=None, xlabels=None, grids=False, figsize=(11, 7), title=None, n_xticks=8, xticks_rotation=None, fontsize_label=15, fontsize_title=15, fontsize_text=10, fontsize_legend=15, fontsize_tick=10, fontname=None, markersize=10, legend_locs=None, fig_save_path=None, show=True, logger=None)
对data (pd.DataFrame)进行多列绘图
Note
目前功能未考虑data.index重复情况,若有重复可能会导致部分绘图错误
- Parameters:
data (pandas.DataFrame) – 待作图数据
cols_styl_up_left (dict) –
指定顶部左轴需要绘制的序列及其线型和图例,格式形如:
{'col1': ('.-b', 'lbl1', kwargs), 'col2': ...}
或{'col1': '.-b', 'col2': ...}
第一种格式中 lbl 设置图例(legend),若为None则默认取列名,为False则不设置图例
第二种格式只设置线型,legend默认取列名
cols_styl_up_right (dict) – 指定顶部右轴需要绘制的序列及其线型和图例,格式同
cols_styl_up_left
cols_styl_low_left (dict) – 指定底部左轴需要绘制的序列及其线型和图例,格式同
cols_styl_up_left
cols_styl_low_right (dict) – 指定底部右轴需要绘制的序列及其线型和图例,格式同
cols_styl_up_left
cols_to_label_info (dict) –
设置需要特殊标注的列绘图信息,格式形如:
{col1: [[col_lbl1, (v1, v2, ..), (styl1, styl2, ..), (lbl1, lbl2, ..), {kwargs, v1: {kwargs1}, v2: {kwargs2}, ...}], [col_lbl2, (v1, v2, ..), ...] ], col2: ... }
其中col是需要被特殊标注的列,col_lbl为标签列;v指定哪些标签值对应的 数据用于绘图;styl设置线型;lbl设置图例标签,若为None,则设置为v,若为False, 则不设置图例标签;{kwargs, v1: {kwargs1}, v2: {kwargs2}}设置其他绘图标注参数
cols_to_fill_info (dict) –
需要进行颜色填充的列信息,格式形如(具体参数key参见matplotlib的fill_between函数):
{col1: {'color': 'c', 'alpha': 0.3}, ...}
col_text_up (dict) –
上图文本标注设置,格式形如(具体参数key参见matplotlib的ax.text函数):
{col1: (col2, {...}), ...}
col_text_low (dict) – 下图文本标注设置,格式同
col_text_up
yscales (None, list) – y轴标轴尺度设置,若为None,则默认普通线性坐标, 可设置为list指定每个坐标尺度(参见matplotlib中的set_yscale)
xparls_info (dict) –
设置x轴平行线信息,格式形如:
{col1: [(yval1, clor1, styl1, width1, kwargs), (yval2, ...)], col2:, ...}
其中yval指定平行线y轴位置,clor设置颜色,styl设置线型,width设置线宽
yparls_info_up (None, list) –
设置顶部x轴平行线格式信息,格式形如:
[(xval1, clor1, styl1, width1, kwargs), (xval2, clor2, style2, width2), ...]
其中xval指定平行线x轴位置,clor设置颜色,styl设置线型,width设置线宽
yparls_info_low (None, list) – 设置顶部x轴平行线格式信息,格式同
yparls_info_up
fills_yparl_up (None, list) –
设置上图平行于y轴的填充区域信息,格式形如:
[([x1, x2], clor1, alpha1, kwargs), (...)]
fills_yparl_low (None, list) – 设置下图平行于y轴的填充区域信息,格式同
fills_yparl_up
fills_xparl (dict) –
设置平行于x轴的填充区域信息,格式形如:
{'col1': [([y1, y2], clor1, alpha1, kwargs), ...], 'col2': ...}
twinx_align_up (None, list) – 设置上图双坐标轴两边坐标轴刻度对齐位置,格式如
[v_left, v_right]
, 绘图时左轴的v_left
位置与右轴的v_right
位置对齐twinx_align_low (None, list) – 设置上图双坐标轴两边坐标轴刻度对齐位置,格式同
twinx_align_up
ylabels (None, list) – 设置四个y轴标签文本内容,若为None则不设置标签文本, 若为False则既不设置y轴标签文本内容,也不显示y轴刻度
xlabels (None, list) – 置两个x轴标签文本内容,若为None则不设置标签文本, 若为False则既不设置x轴标签文本内容,也不显示x轴刻度
grids (boll, list) –
设置四个坐标轴网格,若grids=True,则在顶部左轴和底部左轴绘制网格; 若grids=False,则全部没有网格;若为列表,则分别对四个坐标轴设置网格
Caution
当某个坐标轴设置为不显示刻度时,其对应的网格线也会不显示?
legend_locs (None, list) – 设置上下两个图的legend位置,默认设置为[0, 0]
fontname (None, str) –
字体默认设置为None,可替换其他字体 (如
Courier New
,Times New Roman
)Hint
matplotlib默认字体为
sans-serif
Todo
标签指定值时可以设置为函数(考虑是否有必要)
多重索引处理
legend位置增加放在图片外面的设置
不规则区域填充设置
添加堆叠图(面积图)绘制方式
数字文本标注增加自定义设置(可针对文本列统一设置,也可针对单个文本设置)
正常绘制与特殊标注重复绘制问题
x轴平行线对应列不一定非要在主图绘制列中选择
平行线图层绘制在主线下面
标注图层绘制在线型图层上面(根据输入顺序绘制图层而不是根据坐标轴区域顺序绘制)
上图和下图的x轴不一定非要都是data的index,设置上下图不同x轴坐标
plot_series_conlabel
- dramkit.plottools.plot_common.plot_series_conlabel(data, conlabel_info, del_repeat_lbl=True, **kwargs)
在
dramkit.plottools.plot_common.plot_series()
基础上添加了连续标注绘图功能- Parameters:
data (pandas.DataFrame) – 待作图数据
conlabel_info (dict) –
需要进行连续标注的列绘图信息,格式形如:
{col: [[lbl_col, (v1, ...), (styl1, ...), (lbl1, ...)]]}
Note
(v1, …)中的最后一个值会被当成默认值,其余的当成特殊值 (绘图时为了保证连续会将默认值与特殊值连接起来)
del_repeat_lbl (bool) – 当conlabel_info与cols_to_label_info存在重复设置信息时, 是否删除cols_to_label_info中的设置信息
**kwargs –
dramkit.plottools.plot_common.plot_series()
接受的参数
plot_maxmins
- dramkit.plottools.plot_common.plot_maxmins(data, col, col_label, label_legend=['Max', 'Min'], figsize=(11, 6), grid=True, title=None, n_xticks=8, markersize=10, fig_save_path=None, **kwargs)
- 绘制序列数据(data中col指定列)并标注极大极小值点col_label指定列中值1表示极大值点,-1表示极小值点,0表示普通点label_legend指定col_label为1和-1时的图标标注**kwargs为
dramkit.plottools.plot_common.plot_series()
支持的其它参数
plot_histdist
plot_histdist
- dramkit.plottools.plot_histdist.plot_histdist(series, bins=None, cumulative=False, width=None, clor='grey', density=False, kde_styl=None, dists={'norm': ('-r', None)}, yparls=None, ylabel_left=None, ylabel_right=None, con_points=10000, xticks_gap=1, figsize=(12, 8), title=None, fontsize=15, fig_save_path=None)
绘制直方图,及分布拟合曲线
- Parameters:
series (pandas.Series) – 待绘图序列
bins (None, int, list) – 指定区间划分方式
cumulative (bool) – 是否画累计(概率)图,默认False
width (None, float) – 直方图宽度设置
clor (str) – 直方图颜色
density (bool) – 直方图坐标是否转为改概率密度
kde_styl (None, tuple) –
若为None,则不绘制核密度图kde若绘制kde核密度图,则kde_styl格式形如:(lnstyl, clor, label),若为None
其中lnsty设置线型,可为None或str;clor设置颜色,可为None或str; label设置图例内容,可为None或str或False,为None时默认’kde’, 为False时不设置图例dists (None, dict) –
若为None,不绘制概率分布拟合曲线若绘制概率密度分布拟合图,则dists格式形如:{disttype: (lnstyl, label)}
或{disttype: lnstyl}
其中disttype指定概率密度函数类型;lnstyl设置线型,可为str或None,为None时自动设置线型; 第一种格式中label设置图例内容,可为str或None或False,为None时图例设置为disttype, 为False时不设置图例;第二种格式图例默认设置为disttypeNote
disttype目前可选’norm’, ‘lognorm’, ‘weibull’, ‘t’, ‘f’, ‘chi2’
con_points (int) – 概率密度曲线拟合时在x轴采样点个数
xticks_gap (int) – 设置每xticks_gap个直方图矩形框显示一个x轴刻度
plot_scatter
plot_scatter
- dramkit.plottools.plot_scatter.plot_scatter(data, colx, coly, reg_type=None, dotstyl='.k', group_col=None, group_dotstyles={}, regstyl='-b', figsize=(10, 7), title=None, xlabel=None, ylabel=None, fontsize=15, nXticks=8, fig_save_path=None)
- 散点图绘制group_dotstyles格式: {-1: ‘ob’, 1: ‘or’, 0: ‘ok’}
utils_plot
twinx_align
- dramkit.plottools.utils_plot.twinx_align(ax_left, ax_right, v_left, v_right)
实现左轴(ax_left)在v_left位置和右轴(ax_right)在v_right位置对齐