pandas 和 matplotlib 使用中遇到和解决的一些问题

matplotlib 无法显示中文和负号的解决方法

2019年8月23日

使用matplotlib画图的时候会出现无法正常显示中文的情况,可以使用下列方法解决:

plt.rcParams['font.sans-serif']=['SimHei']  # 用来正常显示中文标签 

显示中文后,会出现数字前的负号无法正常显示的状态,可以使用下列方法解决:

plt.rcParams['axes.unicode_minus']=False  # 用来正常显示负号

可能疑问:
为什么已经有了第一个可以显示中文之后,还不行呢?
解答:在加入显示中文之后,会导致负号显示出现问题,这时候就需要使用第二条语句来使用,当然如果有不需要用到负号就直接用第一句话就好了~

使用pandas读取大文件会报memoryError错误

2019年8月23日

由于数据过大一次性读取可能导致内存溢出,可以使用pandas的分块读取解决

data = pd.read_csv([path],engine='python',chunksize=[chunksize])
for chunk in data:
    #dosometing

使用pandas绘图时的绘图种类

import pandas as pd
data = pd.DataFrame()
data.plot(kind=[kind])
kind = {
	'line':'折线图(默认)',
	'bar':'柱状图',
	'barh':'条形图',
	'box':'箱型图',
	'Scatter':'散点图', ## x,y:x轴,y轴 c:分组 color:颜色 s:大小
	'pie':'饼状图',
	'hexbin':'六边形分布(没用过)',
	'area':'面积图'
}

https://pandas.pydata.org/pandas-docs/version/0.15.0/visualization.html

使用pandas绘图时调整图像的大小

filter_data_pd = pd.DataFrame()
filter_data_pd[column].value_counts().sort_index().plot(kind='bar',figsize=(20,10))

箱型图使用介绍

箱型图:又称为盒须图、盒式图、盒状图或箱线图,是一种用作显示一组数据分散情况资料的统计图(在数据分析中常用在异常值检测)
包含一组数据的:最大值、最小值、中位数、上四分位数(Q3)、下四分位数(Q1)、异常值
① 中位数 → 一组数据平均分成两份,中间的数
② 上四分位数Q1 → 是将序列平均分成四份,计算(n+1)/4与(n-1)/4两种,一般使用(n+1)/4
③ 下四分位数Q3 → 是将序列平均分成四份,计算(1+n)/4*3=6.75
④ 内限 → T形的盒须就是内限,最大值区间Q3+1.5IQR,最小值区间Q1-1.5IQR (IQR=Q3-Q1)
⑤ 外限 → T形的盒须就是内限,最大值区间Q3+3IQR,最小值区间Q1-3IQR (IQR=Q3-Q1)
⑥ 异常值 → 内限之外 - 中度异常,外限之外 - 极度异常

作者:越大大雨天
链接:https://www.jianshu.com/p/d975c6fbe87b
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

# plt.boxplot()绘制
# pltboxplot(x, notch=None, sym=None, vert=None, whis=None, positions=None, widths=None, patch_artist=None, bootstrap=None, 
# usermedians=None, conf_intervals=None, meanline=None, showmeans=None, showcaps=None, showbox=None, showfliers=None, boxprops=None, 
# labels=None, flierprops=None, medianprops=None, meanprops=None, capprops=None, whiskerprops=None, manage_xticks=True, autorange=False, 
# zorder=None, hold=None, data=None)

df = pd.DataFrame(np.random.rand(10, 5), columns=['A', 'B', 'C', 'D', 'E'])
plt.figure(figsize=(10,4))
# 创建图表、数据

f = df.boxplot(sym = 'o',  # 异常点形状,参考marker
               vert = True,  # 是否垂直
               whis = 1.5,  # IQR,默认1.5,也可以设置区间比如[5,95],代表强制上下边缘为数据95%和5%位置
               patch_artist = True,  # 上下四分位框内是否填充,True为填充
               meanline = False,showmeans=True,  # 是否有均值线及其形状
               showbox = True,  # 是否显示箱线
               showcaps = True,  # 是否显示边缘线
               showfliers = True,  # 是否显示异常值
               notch = False,  # 中间箱体是否缺口
               return_type='dict'  # 返回类型为字典
              ) 
plt.title('boxplot')
print(f)

for box in f['boxes']:
    box.set( color='b', linewidth=1)        # 箱体边框颜色
    box.set( facecolor = 'b' ,alpha=0.5)    # 箱体内部填充颜色
for whisker in f['whiskers']:
    whisker.set(color='k', linewidth=0.5,linestyle='-')
for cap in f['caps']:
    cap.set(color='gray', linewidth=2)
for median in f['medians']:
    median.set(color='DarkBlue', linewidth=2)
for flier in f['fliers']:
    flier.set(marker='o', color='y', alpha=0.5)
# boxes, 箱线
# medians, 中位值的横线,
# whiskers, 从box到error bar之间的竖线.
# fliers, 异常值
# caps, error bar横线
# means, 均值的横线

你可能感兴趣的:(pandas 和 matplotlib 使用中遇到和解决的一些问题)