怎样用 Excel 做出这样的图?还是只能用 Photoshop?
第一步,输入数据,发布时间是自己估的,懒得一个个查了……
第二步,插入图表的 bubble 图,选平面的那种,当然你要是喜欢一颗一颗还发光的我也没意见…
第三步,其实出来会是一张完全空白的表格,
一般来说,Excel 都是直接选中数据再插入图表,但是你会发现 bubble 图很特殊,Excel 会搞不清楚哪个是哪个,经常出来的东西就是一坨翔……
第四步,系列名称随便你,可以空着,X 轴是时间(用小数形式更好调整),Y 轴是用户量,Bubble 的大小也是用户量。然后 OK 就能看到下面这张看上去差不多但是丑爆了的表。
第五步,调整格式:
纵坐标格式之范围:
纵坐标格式之颜色:
纵坐标格式之调用小箭头,通过 End type, End size 来调,结果如下图噢:
第七步,和刚才一样的流程调整横坐标,删除数据标签,
第八步,插入文本框,放起始时间和结束时间和“上线时间”
这里其实是可以通过数据直接设置,而不是手动加。
反正如果你有心的话可以自己比较一下,不同情况用不同的方法啦~
第九步,上色:
这张图的逻辑是采用 APP 自己的颜色来给 bubble 上色,UC 是橙色的,新浪是红色的,微信是绿色的,你看到的我是蓝色的……
对着你要上色的 bubble 点一下选中所有图案,再点一下选择当下 bubble(注意是再点一下,不是双击,要停顿噢~~),
第十步,完成上色之后,用文本框添加文字标签(
哪位同学有更快的方法请告诉我!)
最后,哪里看不顺眼再微调下就行了,成果图如下:
第十一步,前面说到这张图的逻辑就是 APP 自己的颜色,
Excel 画图神奇的地方就是可以用颜色来表示逻辑关系,
比如,你的重点关注对象是美图秀秀和其余 APP 的比较,那么:
再比如,题图表格的标题有第一梯队和第二梯队之分,所以你可以:
其实我觉得既然图上有了数据标签,纵坐标就比较没有意义,
最后,我想说....这种图用 PS 要怎么搞啊= =''
-----
更新
1 感谢很多 PS/AI 耍得很厉害的同学,可以通过把数据比变成面积比来设置泡泡大小
2 感谢 @LuciferSheng 提醒,日期写成了 20011……作为强迫症……我改好了
3 文字标签可以使用一个叫 XY Chart Labeler 的插件,下载地址如下:
The XY Chart Labeler Add-in
我的 Excel 是 2010 版,据说 2013 版自带文字标签功能。
插件的安装效果图如下:
我试了下,貌似一组数据是不能同时插入两组数据标签的,
插入数据标签以后,回车分行,批量修改格式,再微调下位置就 OK 啦~
环境:MS Excel 2010
1. 创建新文档,存储为“热心匿名用户的泡泡图.xlsm”。
在 A、B、C 列输入原始数据(必须按图示格式:A 列名称,B 列数值,C 列日期)。注意 B 列第一单元格请输入表格名称。
2. Alt+F11 呼唤神龙。猛击左栏“ThisWorkBook”。
3. 将以下代码复制在右栏:
Sub bubble() Dim Bot_A As Integer, Bot_B As Integer, Bot_C As Integer Bot_A = ActiveSheet.range("A65535").End(xlUp).row Bot_B = ActiveSheet.range("B65535").End(xlUp).row Bot_C = ActiveSheet.range("C65535").End(xlUp).row 'sort data Columns("C:C").Select ActiveSheet.sort.SortFields.Clear ActiveSheet.sort.SortFields.ADD Key:=range("C1"), _ SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal Cells(1, 10).Select ' any cell but within data range is ok 'add chart ActiveSheet.Shapes.AddChart.Select With ActiveChart .ChartType = xlBubble .SeriesCollection.NewSeries .SeriesCollection(1).Name = Cells(1, 2).value .SeriesCollection(1).XValues = "=" & ActiveSheet.Name & "!" & "$C$2:$C$" & Bot_C & "" .SeriesCollection(1).Values = "=" & ActiveSheet.Name & "!" & "$B$2:$B$" & Bot_B & "" .SeriesCollection(1).BubbleSizes = "=" & ActiveSheet.Name & "!" & "$B$2:$B$" & Bot_B & "" .SetElement (msoElementDataLabelTop) 'auto fill color .ChartGroups(1).VaryByCategories = True 'del Legend .Legend.Delete End With 'modify text Dim i As Integer ActiveChart.SeriesCollection(1).Select For i = 2 To Bot_A ActiveChart.SeriesCollection(1).Points(i - 1).DataLabel.Text = Cells(i, 1) & " " & Cells(i, 2) Next i End Sub
Ctr+S 保存。
4. 请仍然停留在代码界面,轻轻按下“F5”。是的,
你看到了以下结果:
5. 乱码?!!!!请淡定。
6. 手动把图表大小调整一下呗。引用一楼的话,叫“勤劳致富”。
是不是有感觉一点。
希望能帮到同学们。