图的用途+pandas绘图(一):折线图、柱状图、直方图

约定:

%matplotlib inline
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

图的用途+pandas绘图

一、折线图 Line Chart

  • 折线图的用途

排列在工作表的列或行中的数据可以绘制到折线图中。折线图可以显示随时间(根据常用比例设置)而变化的连续数据,因此非常适用于显示在相等时间间隔下数据的趋势

当有多个系列时,尤其适合使用折线图 — 对于一个系列,应该考虑使用类别图。如果有几个均匀分布的数值标签(尤其是年),也应该使用折线图。如果拥有的数值标签多于十个,请改用散点图。

  • 类型1:单折线图
ts = pd.Series(np.random.randn(1000), index=pd.date_range('1/1/2000', periods=1000))
ts = ts.cumsum()
ts.plot();

这里写图片描述

  • 类型2:多折线图
df = pd.DataFrame(np.random.randn(1000, 4), index=pd.date_range('1/1/2000', periods=1000), columns=list('ABCD'))
df = df.cumsum()
df.plot();

这里写图片描述

二、柱状图 Bar Chart

  • 柱状图的用途

柱状图(bar chart),是一种以长方形的长度为变量的表达图形的统计报告图,由一系列高度不等的纵向条纹表示数据分布的情况,用来比较两个或以上的价值(不同时间或者不同条件)。通常利用于较小的数据集分析。柱状图亦可横向排列,或用多维方式表达。

  • 类型1:竖直柱状图
df2 = pd.DataFrame(np.random.rand(10, 4), columns=['a', 'b', 'c', 'd'])
df2.plot.bar();

png

  • 类型2:叠加竖直柱状图
df2.plot.bar(stacked=True);

png

  • 类型3:叠加水平柱状图
df2.plot.barh(stacked=True);

png

三、直方图 Histogram

  • 直方图的用途

直方图(Histogram)又称质量分布图。是一种统计报告图,由一系列高度不等的纵向条纹或线段表示数据分布的情况。 一般用横轴表示数据类型(或等长区间),纵轴表示分布情况(落在该区间的频数)

直方图的常见作用有以下三点:

(1)显示数据点波动的状态;

(2)较直观地传递有关过程状况的信息;

(3)通过研究质量波动状况之后,就能掌握过程的状况,从而确定在什么地方集中力量进行质量改进工作。

  • 类型1:直方图
df3 = pd.DataFrame({'a': np.random.randn(1000) + 1, 'b': np.random.randn(1000)}, columns=['a', 'b'])
df3['a'].hist();

png

  • 类型2:交叉直方图
df3.plot.hist(alpha=0.5,bins=20);

png

  • 类型3:叠加直方图
df3.plot.hist(stacked=True, bins=20);

png

类型4:水平累计直方图

df3['a'].plot.hist(orientation='horizontal', cumulative=True);

png

* 类型5:多子图直方图
df3.hist(color='k', alpha=0.5, bins=50);

png

谢谢大家的浏览,
希望我的努力能帮助到您,
共勉!

### 如何在柱状图上叠加折线图 为了在同表上同时展示柱状图折线图,可以利用 `matplotlib` 的灵活性来完成这目标。下面是个具体的例子,展示了如何在形窗口内既显示柱状图又显示折线图。 #### 创建样本数据集 首先,创建些用于演示的数据: ```python import numpy as np import pandas as pd data = {'Category': ['A', 'B', 'C', 'D'], 'Values': [3, 7, 5, 9], 'LineData': [10, 20, 15, 25]} df = pd.DataFrame(data) ``` #### 绘制柱状图并添加折线图 接着,在同坐标轴对象上调用两次绘图方法——次用来画柱子,另次则用来描绘线条。这里需要注意的是要确保两个不同类型的表共享相同的X轴以便于比较两者之间的关系[^1]。 ```python import matplotlib.pyplot as plt fig, ax1 = plt.subplots() # 绘制柱状图 ax1.bar(df['Category'], df['Values'], color="skyblue", label='Bar Chart') ax1.set_ylabel('Bar Values') # 添加第二个Y轴给折线图 ax2 = ax1.twinx() ax2.plot(df['Category'], df['LineData'], marker='o', linestyle='-', color="orange", linewidth=2, label='Line Plot') ax2.set_ylabel('Line Data') plt.title("Combination of Bar and Line Charts") lines_labels = [ax.get_lines()[0] for ax in fig.axes] labels = [line.get_label() for line in lines_labels] fig.legend(lines_labels, labels, loc='upper right') plt.show() ``` 这段代码实现了如下效果: - 使用 `twinx()` 方法为折线图创建了个新的y轴。 - 对同个 x 轴上的两组 y 数据分别进行了可视化处理;组作为直方条形表示,另组则是连续变化的趋势曲线形式呈现出来。 - 例被统放置到了右上方位置,并且只包含了实际存在的两类元素标签[^2]。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值