我正在参与「启航方案」
前言
一般我们做数据挖掘或许是数据剖析,再或许是大数据开发提取数据库里面的数据时分,难免只能拿着表格数据左看右看,心里总是希望能够根据自己所想立马生成一张数据可视化的图表来更直观的出现数据。而当我们想要进行数据可视化的时分,往往需求调用很多的库与函数,还需求数据转换以及很多的代码处理编写。这都是非常繁琐的作业,的确只为了数据可视化我们不需求完成数据可视化的工程编程,这都是数据剖析师以及具有专业的报表东西来做的工作,日常剖析的话我们根据自己的需求直接进行快速出图即可,而Pandas正好就带有这个功用,当然仍是依赖matplotlib库的,只不过将代码压缩更容易完成。下面就让我们来了解一下怎么快速出图。
Pandas数据剖析系列专栏已经更新了很久了,根本掩盖到运用pandas处理日常业务以及常规的数据剖析方方面面的问题。从根底的数据结构逐渐入门到处理各类数据以及专业的pandas常用函数解说都花费了很多时刻和心思创造,假如我们有需求从事数据剖析或许大数据开发的朋友推荐订阅专栏,将在第一时刻学习到Pandas数据剖析最实用常用的常识。此篇博客篇幅较长,涉及到数据可视化等各类操作,值得细读实践一番,我会将Pandas的精华部分挑出细讲实践。博主会长期保护博文,有过错或许疑惑能够在评论区指出,感谢我们的支撑。
一、箱线图
数据依旧是上篇文章的数据:
调用
- Series.plot.box()
- DataFrame.plot.box()
- DataFrame.boxplot()
能够制作箱线图每个列中的值散布。
df_flow_mark[['风级','降水量']].plot.box()
能够经过传递color关键字对Boxplot进行着色。你能够传递一个字典dict,key关键字为boxes、whiskers,medians,caps。假如dict中缺少一些键,则会为相应的运用默许色彩。此外,箱线图还有sym关键字来指定传单款式。
color = {
"boxes": "DarkGreen",
"whiskers": "DarkOrange",
"medians": "DarkBlue",
"caps": "Gray",
}
df_flow_mark[['风级','降水量']].plot.box(color=color, sym="r+")
创立一个数据集展示愈加显着:
df = pd.DataFrame(np.random.rand(10, 5), columns=["A", "B", "C", "D", "E"])
color = {
"boxes": "DarkGreen",
"whiskers": "DarkOrange",
"medians": "DarkBlue",
"caps": "Gray",
}
df.plot.box(color=color, sym="r+")
此外,还能够传递matplotlib箱线图支撑的其他关键字。例如,能够经过vert=False和positions关键字制作水平缓自定义定位箱线图。
df.plot.box(vert=False, positions=[1, 4, 5, 6, 8])
现有接口仍然能够运用DataFrame.boxplot:
df.boxplot()
能够运用by关键字参数创立分层箱线图来创立分组。例如,
df = pd.DataFrame(np.random.rand(10, 2), columns=["Col1", "Col2"])
df["X"] = pd.Series(["A", "A", "A", "A", "A", "B", "B", "B", "B", "B"])
plt.figure();
bp = df.boxplot(by="X")
还能够传递要打印的列子集,以及按多个列分组:
df = pd.DataFrame(np.random.rand(10, 3), columns=["Col1", "Col2", "Col3"])
df["X"] = pd.Series(["A", "A", "A", "A", "A", "B", "B", "B", "B", "B"])
df["Y"] = pd.Series(["A", "B", "A", "B", "A", "B", "A", "B", "A", "B"])
plt.figure();
bp = df.boxplot(column=["Col1", "Col2"], by=["X", "Y"])
用DataFrame.plot.box()也是一样的:
df = pd.DataFrame(np.random.rand(10, 3), columns=["Col1", "Col2", "Col3"])
df["X"] = pd.Series(["A", "A", "A", "A", "A", "B", "B", "B", "B", "B"])
plt.figure()
bp = df.plot.box(columns=["Col1", "Col2"], by="X")
在箱线图中,回来类型能够由return_type,关键字操控。有用选项是{“axes”、“dict”、“both”、“None}。镶嵌面,由DataFrame.boxplot创立by关键字的箱线图也会影响输出类型:
np.random.seed(1234)
df_box = pd.DataFrame(np.random.randn(50, 2))
df_box["g"] = np.random.choice(["A", "B"], size=50)
df_box.loc[df_box["g"] == "B", 1] += 3
bp = df_box.boxplot(by="g")
上面的子地块首先由数字列切割,然后由g列的值切割。下面的子地块首先由g值切割,然后由数字列切割。
bp = df_box.groupby("g").boxplot()
二、面积填充图
能够运用Series.plot.area()和DataFrame.plot.area()创立面积图。默许情况下,面积图是堆叠的。要生成堆叠面积图,每列有必要悉数为正值或悉数为负值。
当输入数据包含NaN时,它将主动由0填充。假如要运用不同的值进行删去或填充,调用plot之前能够运用DataFrame.dropna()或DataFrame.fillna()。
df = pd.DataFrame(np.random.rand(10, 4), columns=["a", "b", "c", "d"])
df.plot.area();
要生成未堆叠的绘图,请传递stacked=False。Alpha值设置为0.5。
df.plot.area(stacked=False);
三、散点图
能够运用DataFrame.plot.scatter()办法制作散点图,散点图需求x轴和y轴的数字列。这些能够由x和y关键字指定。
df_flow_mark.plot.scatter(x='日期',y='客流量')
要在单个轴上制作多个列组,能够重复指定方针轴的打印办法。建议指定色彩(color)和标签(label)关键字以区分每个组。
df = pd.DataFrame(np.random.rand(50, 4), columns=["a", "b", "c", "d"])
df["species"] = pd.Categorical(
["setosa"] * 20 + ["versicolor"] * 20 + ["virginica"] * 10
)
ax = df.plot.scatter(x="a", y="b", color="DarkBlue", label="Group 1")
df.plot.scatter(x="c", y="d", color="DarkGreen", label="Group 2", ax=ax);
关键字c能够作为列的名称,为每个点提供色彩:
df.plot.scatter(x="a", y="b", c="c", s=50);
假如将分类列传递给c,则将生成一个离散的色彩条:
df.plot.scatter(x="a", y="b", c="species", cmap="viridis", s=50);
能够传递matplotlib.scatter支撑的其他关键字。下面的示例显示了一个气泡图,它运用DataFrame的一列作为气泡大小。
df_flow_mark.plot.scatter(x='日期',y='客流量',s=df_flow_mark['湿度']*200)
点重视,防走丢,如有疏忽之处,请留言指导,非常感谢
以上便是本期悉数内容。我是fanstuck ,有问题我们随时留言讨论 ,我们下期见