学习python

https://www.cnblogs.com/frchen/p/5749559.html

 

python的matlibplot绘图常用参数设置:转自http://www.cnblogs.com/hzc2012/p/8377478.html

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt 
import matplotlib.patches as mpatches
from scipy.interpolate import spline

x = np.arange(-5,11)
y = x**3 + 2*(x**2) + x + 2
y2 = 2*(x**3) + 2*(x**2) + x + 1

plt.figure(figsize=(10,6),facecolor='#ffffcc',edgecolor='#ffffcc') #绘图框的大小、颜色(放最前)
plt.subplot(111, facecolor='#e6e6e6')#绘图区,背景色(放在figure之后,绘图函数之前)

#绘图
plt.plot(x, y, color='red', linewidth=1, linestyle='--') #绘折现图
doc = plt.scatter(x, y2, color='green',label="绘点标签") #绘点图

#绘平滑曲线,将x轴上的点划分更多段来绘图
x_smooth = np.linspace(x.min(), x.max(), x.max()*1000)
y_smooth = spline(x, y2, x_smooth)
plt.plot(x_smooth, y_smooth, color='blue', linewidth=1,label="平滑线标签")

#其他设置
plt.grid(axis='y',color='#8f8f8f',linestyle='--', linewidth=1 ) #显示网格(如显示y轴的)
plt.xlim([-10,15]) #指X轴的显示范围
plt.ylim([-100,3000]) #指Y轴的显示范围
plt.title('标题', color='blue')
plt.xlabel('x 轴标签', color='blue')
plt.ylabel('y 轴标签', color='blue')
plt.text((x.max()+x.min())/2,(y2.max()+y2.min())/2,'show text',ha='center')#图像上显示文本信息
for a,b in zip(x, y2): plt.text(a, b, str(b)) #plt.text 显示y值
plt.legend(loc=2)#图像标签说明,设置label的都显示(loc=2位于第二个角洛)
#plt.legend(handles=[doc], loc=2) #只显示一个图的标签
#plt.xticks((-4,-2,0,2,4,6,8,10),(-4,-2,0,2,4,6,8,10))#替换x轴刻度值
plt.yticks((0,500,1000,1500,2000),('0','0.5k','1k','1.5k','2k'))#替换y轴刻度值
plt.axis('tight') #tight:坐标轴数据显示更明细(有不同选项)
plt.show() #显示图像

 

Seaborn中的箱型图的具体实现方法:可参看官方文档链接:http://seaborn.pydata.org/generated/seaborn.boxplot.html#seaborn.boxplot

seaborn.boxplot(x=None, y=None, hue=None, data=None, order=None, hue_order=None, orient=None, color=None, palette=None, saturation=0.75, width=0.8, dodge=True, fliersize=5, linewidth=None, whis=1.5, notch=False, ax=None, **kwargs)

绘制方框图以显示与类别相关的分布。

箱形图(或盒须图)以一种有助于比较变量或跨分类变量水平的方式显示定量数据的分布。该框显示数据集的四分位数,而晶须延伸以显示分布的其余部分,除了使用作为四分位数范围的函数的方法确定为“异常值”的点。

输入数据可以以多种格式传递,包括:

  • 表示为列表,numpy的阵列,或直接传递到大熊猫Series对象数据的向量xy和/或hue参数。
  • “长表”数据帧,在这种情况下xyhue 变量将决定数据是如何绘制。
  • “宽格式”DataFrame,用于绘制每个数字列。
  • 一个数组或向量列表。

在大多数情况下,可以使用numpy或Python对象,但最好使用pandas对象,因为关联的名称将用于注释轴。此外,您可以使用分类类型来分组变量来控制绘图元素的顺序。

此函数始终将其中一个变量视为分类,并在相关轴上的序数位置(0,1,... n)处绘制数据,即使数据具有数字或日期类型也是如此。

 

参数:

x,y,huedata或矢量数据中的变量名称,可选,(hue(str):dataframe的列名,按照列名中的值分类形成分类的条形图)

用于绘制长格式数据的输入。查看解释示例。

data:DataFrame,数组或数组列表,可选

用于绘图的数据集。如果xy不存在,则将其解释为宽格式。否则预计它将是长形的。

order,hue_order:字符串列表,可选(order, hue_order (lists of strings):用于控制条形图的顺序

命令绘制分类级别,否则从数据对象推断级别。

orient:“v”| “h”,可选(orient:"v"|"h" 用于控制图像使水平还是竖直显示(这通常是从输入变量的dtype推断出来的,此参数一般当不传入x、y,只传入data的时候使用))

图的方向(垂直或水平)。这通常是从输入变量的dtype推断出来的,但可用于指定“分类”变量何时是数字或何时绘制宽格式数据。

color:matplotlib颜色,可选

所有元素的颜色,或渐变调色板的种子。

palette:调色板名称,列表或字典,optional(调色板,控制图像的色调)

用于hue变量的不同级别的颜色。应该是可以解释的东西color_palette(),或者是将色调级别映射到matplotlib颜色的字典。

saturation:饱和度,float,optional

用于绘制颜色的原始饱和度的比例。对于稍微不饱和的颜色,较大的贴片通常看起来更好,但1如果您希望绘图颜色与输入颜色规格完美匹配,则将其设置为 。

width:float,optional(width:float,控制箱型图的宽度)

不使用色调嵌套时的完整元素的宽度,或主要分组变量的一个级别的所有元素的宽度。

dodge:布尔,optional

使用色调嵌套时,是否应沿分类轴移动元素。

fliersize:float,optional(fliersize:float,用于指示离群值观察的标记大小

用于表示异常值观察的标记的大小。

linewidth:float,optional

构图元素的灰线宽度。

whis:float,optional(whis:确定离群值的上下界(IQR超过低和高四分位数的比例),此范围之外的点将被识别为异常值。IQR指的是上下四分位的差值。)

IQR的比例超过低和高四分位数以延长情节胡须。超出此范围的点将被识别为异常值。

notch:布尔值,optional

是否“切入”框以指示中位数的置信区间。还有其他几个参数可以控制凹槽的绘制方式; plt.boxplot有关它们的更多信息,请参阅帮助。

ax:matplotlib轴,optional

Axes对象将绘图绘制到,否则使用当前轴。

kwargs:关键,价值映射

其他关键字参数plt.boxplot在绘制时传递到。

 

Examples

绘制一个水平箱图:

>>> import seaborn as sns
>>> sns.set(style="whitegrid")
>>> tips = sns.load_dataset("tips")
>>> ax = sns.boxplot(x=tips["total_bill"])

../_images/seaborn-boxplot-1.png

 

绘制一个按分类变量分组的垂直箱图:

>>> ax = sns.boxplot(x="day", y="total_bill", data=tips)

../_images/seaborn-boxplot-2.png

使用两个分类变量绘制具有嵌套分组的箱线图:

>>> ax = sns.boxplot(x="day", y="total_bill", hue="smoker",
...                  data=tips, palette="Set3")

../_images/seaborn-boxplot-3.png

当某些箱子为空时,绘制带有嵌套分组的箱线图:

>>> ax = sns.boxplot(x="day", y="total_bill", hue="time",
...                  data=tips, linewidth=2.5)

../_images/seaborn-boxplot-4.png

通过传递显式顺序控制框顺序:

>>> ax = sns.boxplot(x="time", y="tip", data=tips,
...                  order=["Dinner", "Lunch"])

../_images/seaborn-boxplot-5.png

 

为DataFrame中的每个数字变量绘制一个boxplot:

>>> iris = sns.load_dataset("iris")
>>> ax = sns.boxplot(data=iris, orient="h", palette="Set2")

../_images/seaborn-boxplot-6.png

Use hue without changing box position or width:

>>> tips["weekend"] = tips["day"].isin(["Sat", "Sun"])
>>> ax = sns.boxplot(x="day", y="total_bill", hue="weekend",
...                  data=tips, dodge=False)

../_images/seaborn-boxplot-7.png

Use swarmplot() to show the datapoints on top of the boxes(用swarmplot()在框顶部显示数据点)::

>>> ax = sns.boxplot(x="day", y="total_bill", data=tips)
>>> ax = sns.swarmplot(x="day", y="total_bill", data=tips, color=".25")

../_images/seaborn-boxplot-8.png

Use catplot() to combine a pointplot() and a FacetGrid. This allows grouping within additional categorical variables. Using catplot() is safer than using FacetGrid directly, as it ensures synchronization of variable order across facets(使用catplot()结合一pointplot()和 FacetGrid。这允许在其他分类变量中进行分组。使用catplot()FacetGrid 直接使用更安全,因为它确保跨方面的变量顺序同步:):

>>> g = sns.catplot(x="sex", y="total_bill",
...                 hue="smoker", col="time",
...                 data=tips, kind="box",
...                 height=4, aspect=.7);

../_images/seaborn-boxplot-9.png

 

也可参看一下链接:https://www.jianshu.com/p/96977b9869ac

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值