尝试制作多柱状图

尝试制作多柱状图

我正在尝试制作一个柱状图,其中 y 轴表示平均粒径,x 轴表示沿横断面的距离,每个系列表示日期和/或数字值(实际上并不重要)。

这是一个我的数据图片 CSV 格式如下:

Date,,Grain Size (mm),Distance along Transact
8/7/2013,2,0.7912,9
4/5/2014,3,0.513,9
6/5/2015,4,0.4644,9
6/26/2013,1,1.0852,12
6/5/2015,4,1.8515,12
8/7/2013,2,1.812,15
4/5/2014,3,6.371,15
6/5/2015,4,1.602,15
6/26/2013,1,1.0251,17
6/5/2015,4,5.6884,17
6/26/2013,1,0.4166,25
6/5/2015,4,24.8669,25
6/26/2013,1,0.5223,32.5
6/5/2015,4,37.387,32.5
6/26/2013,1,0.5159,39.5
6/5/2015,4,0.6727,39.5

我在 Excel 2010 中尝试了几种不同的方法,但还是搞不定。我希望,假设第一个位置 9 有三列,然后 12 有两列。如果这很重要,假设总距离是 50。此数据的结果应该有 7 组沿横断面/x 轴的列。

我曾尝试使用 Python 来实现这一点,但我的编码知识几乎为零。这是我目前的代码:

import numpy as np
import matplotlib.pyplot as plt
grainsize = [0.7912, 0.513, 0.4644, 1.0852, 1.8515, 1.812, 6.371, 1.602, 1.0251, 5.6884, 0.4166, 24.8669, 0.5223, 37.387, 0.5159, 0.6727]
series = [2, 3, 4, 1, 4, 2, 3, 4, 1, 4, 1, 4, 1, 4, 1, 4]
distance = [9, 9, 9, 12, 12, 15, 15, 15, 17, 17, 25, 25, 32.5, 32.5, 39.5, 39.5]

如果有人碰巧知道可以使用的代码,那将非常有帮助。关于如何在 Excel 中执行此操作的建议也很棒。

希望这是有意义的。任何帮助都将不胜感激!

答案1

这里有一种方法:创建一个新的表格,以不同的方式列出数据,然后根据该表格制作图表。这不是一个完美的解决方案,但它很有效,而且随着数据的增长,很容易扩展。

首先,结果如下:

完成品

您可以在列中看到原始数据A:D。我实际上对其进行了修改,因为有两个非常大的值,它们使得很难看到三列。这F1:I8是我制作的表格,图表位于右下角。您可以按照以下方法重复此过程:

  1. 计算出最常见值在列中出现的次数Distance along Transact(从现在开始称为Distance)。一种简单的方法是使用公式=COUNTIF(D:D,MODE(D:D))
  2. 在新表中创建许多列并使用数字作为标题。(1、2、3……)
  3. 在 中F2,使用公式:=SMALL(D:D,1)得到最低Distance值。
  4. F3,使用大批公式(使用+ +{=SMALL(IF(D:D>F2,D:D),1)}输入)并根据需要向下拖动公式。CtrlShiftEnter
  5. G2,使用大批公式{=INDEX($C:$C,SMALL(IF($D$2:$D$17=$F2,ROW($D$2:$D$17),9E+99),G$1))}并将其向下拖动以填充表格。忽略#REF!错误,因为它们不会显示在图表上。
  6. 根据新表的范围创建图表。

我对上面的截图做的唯一编辑是减少列之间的间隙,以便您能更好地看到它。

这种方法的缺点是,如果数据点数量少于最大数量,它会在 X 轴值之间留下空白Grain Size。如果您想添加数据标签,则错误将显示为零,因此请使用自定义格式格式化数据标签#,##0;-#,##0;;以隐藏零。

答案2

这里还有另一个可以考虑的选项,即使用 Excel 的内置效率表格和数据透视表。

  1. 将数据转换为列 Data > Text-to-Columns
  2. 根据数据创建 Excel 表格(选定数据中的一个单元格)Insert > Table
  3. 从您的表格创建一个数据透视表(选择表格中的一个单元格)Insert > Pivot Table,使用以下设置:
    • 列标签: 第 1 列
    • 行标签: 沿交易距离
    • 值: 平均粒径
  4. 从数据透视表创建数据透视图(选择数据透视表中的一个单元格)Insert > Charts > 2-D Column Chart

Excel 表格和图表

现在,无需任何公式,您就拥有了一系列链接的对象,这些对象将随着它们之间的变化而刷新(例如,向数据表添加行,过滤数据透视图或数据透视表)。

为了从该解决方案中获得最大价值,您可以将表设置为从不同的数据源(例如 SQL Server)自动刷新,以确保您的表/图表始终是最新的。

答案3

好吧,我不知道柱状图是否真的是显示粒度与位置的最佳方式,我会尝试散点图。

首先,我制作了一个数据透视表,以便以更好的布局排列数据,其中日期位于列区域,距离位于行区域,平均粒度为值。这在屏幕截图中的 E1:I9 中。

您不能将散点图制作成数据透视图。如果您逐系列添加数据,则可以制作一个,说来话长,但我复制了数据透视表并将其粘贴为另一个范围中的值(屏幕截图中的 E12:I19),并确保左上角单元格(E12)为空白。

然后我制作了散点图,并在选择数据对话框中,单击隐藏和空单元格,并选择绘制连接缺失单元格两侧点的线的选项。

粒度与位置

在最近的测量中发现有些东西很奇怪!

相关内容