xampp网站后台网站建设逻辑
2026/1/11 12:24:43 网站建设 项目流程
xampp网站后台,网站建设逻辑,公司网站开发费能记研发费用哪个科目,深圳网站建设流程棒棒糖图#xff08;Lollipop Chart#xff09;可以看作是条形图的一种“轻盈版”变体#xff1a;它用一根从基准线延伸出来的“棒”#xff0c;并在末端以一个“糖”#xff08;圆点#xff09;来表示数值#xff0c;取代了传统的矩形条。 这种图表传达的信息与条形图是…棒棒糖图Lollipop Chart可以看作是条形图的一种“轻盈版”变体它用一根从基准线延伸出来的“棒”并在末端以一个“糖”圆点来表示数值取代了传统的矩形条。这种图表传达的信息与条形图是一样的但它更注重突出数据点的位置整体看起来更加清新、现代。今天我们一起探索棒棒糖图的优势并通过代码实现亲手打造一个属于自己的棒棒糖图设计原理设计棒棒糖图的初衷有两个方面首先通过减少图形中的“墨水”使用量在面对大量类别或数值普遍较高的情况下避免了条形图过于密集可能带来的视觉压迫感和杂乱无章的感觉其次这样的设计能够更好地引导观察者的注意力集中在各个数据点的具体位置及其之间的差异上非常适合用来进行排名或者对比分析。棒棒糖图与条形图在功能上是等价的也并不总是优于条形图。当处理大量类别、条柱非常高且相互之间距离较近的数据时棒棒糖图会显得更加易于阅读理解然而在需要强调绝对数量或是希望获得最为直观长度比较的情况下条形图依然是更好的选择。实现原理棒棒糖图在matplotlib库中没有直接对应的类。不过它的实现原理非常简单通过组合使用matplotlib中的两个基本绘图功能就可以实现绘制线条(plt.vlines)这是构成棒棒糖“棍子”部分的关键。plt.vlines函数用于在图表上绘制垂直线段。通过指定每个数据点的 x 坐标、线条的起始点通常是 0和结束点即对应数据的 y 值就可以画出从 x 轴延伸到数据值的线条。绘制圆点(plt.scatter)这是构成棒棒糖“糖”部分的关键。plt.scatter函数用于绘制散点图。通过将每个数据点的 x 坐标和 y 坐标即数据值作为参数传入就可以在每条线的顶端绘制一个圆点。总的来说实现原理就是用线条表示数值的大小用圆点强调数值的终点位置两者结合就形成了视觉上类似棒棒糖的图表。这种组合方式使得图表比实心的条形图更简洁同时又能清晰地传达数据信息。下一节的示例中将会演示如何使用matplotlib来绘制棒棒糖图。应用示例接下来让我们通过实际的对比示例直观地感受棒棒糖图与传统条形图的不同表现。适合棒棒糖图的场景/* by yours.tools - online tools website : yours.tools/zh/dnsusa.html */ # 创建更多类别的测试数据 # 模拟不同月份中每天的某个指标例如每日平均步数单位千步 days [fDay {i} for i in range(1, 21)] # 生成 20 天的数据 np.random.seed(42) # 设置随机种子确保每次运行结果一致 # 生成 1 到 5 之间的随机数值作为示例数据 values np.round(np.random.uniform(1.0, 5.0, sizelen(days)), 1) # --- 创建子图 --- fig, (ax1, ax2) plt.subplots(2, 1, figsize(12, 10)) # 调整为垂直布局方便比较 # --- 绘制条形图 (上图) --- bars ax1.bar(days, values, colorskyblue, edgecolornavy, linewidth0.7) ax1.set_title(条形图 (Bar Chart) - 每日步数, fontsize14) ax1.set_ylabel(数值 (千步)) # ax1.set_xlabel(日期) # x轴标签已在下方图中 ax1.grid(axisy, linestyle--, alpha0.7) # 在条形图上添加数值标签 for bar, val in zip(bars, values): height bar.get_height() ax1.text( bar.get_x() bar.get_width() / 2.0, height 0.05, f{val}, hacenter, vabottom, fontsize8, ) # 标签旋转90度节省空间 # --- 绘制棒棒糖图 (下图) --- # 1. 绘制线条 ax2.vlines(xrange(len(days)), ymin0, ymaxvalues, colornavy, linewidth2) # 2. 在线条顶部绘制圆点 ax2.scatter(xrange(len(days)), yvalues, colorred, s50, zorder3) # 3. 添加数值标签 for i, val in enumerate(values): ax2.text(i, val 0.1, f{val}, hacenter, vabottom, fontsize8) ax2.set_title(棒棒糖图 (Lollipop Chart) - 每日步数, fontsize14) ax2.set_ylabel(数值 (千步)) ax2.set_xlabel(日期) ax2.set_xticks(range(len(days))) ax2.set_xticklabels(days, rotation45, haright) # 旋转x轴标签以便阅读 ax2.grid(axisy, linestyle--, alpha0.7) ax2.set_ylim(0, max(values) * 1.1) # --- 显示图形 --- plt.tight_layout() # 调整子图间距 plt.show()这个示例使用了20个数据类别Day 1 到 Day 20。你可以看到在条形图中许多蓝色的条形紧密地排列在一起视觉上显得有些拥挤。而在棒棒糖图中线条和圆点使得数据点之间的关系更加清晰整体视觉效果更轻盈更容易比较各个数值的大小和识别模式。适合传统条形图的场景/* by yours.tools - online tools website : yours.tools/zh/dnsusa.html */ # 创建更适合条形图的测试数据 # 模拟某公司连续12个月的销售额单位万元 months [ 1月, 2月, 3月, 4月, 5月, 6月, 7月, 8月, 9月, 10月, 11月, 12月, ] # 生成有一定趋势和波动的销售额数据例如有季节性高峰 sales [120, 110, 135, 140, 155, 170, 185, 180, 160, 150, 145, 165] # --- 创建子图 --- fig, (ax1, ax2) plt.subplots(1, 2, figsize(16, 6)) # --- 绘制条形图 (左图) --- bars ax1.bar(months, sales, colorlightsteelblue, edgecolorblack, linewidth0.7) ax1.set_title(条形图 (Bar Chart - 月份销售额), fontsize14) ax1.set_ylabel(销售额 (万元)) ax1.set_xlabel(月份) ax1.grid(axisy, linestyle--, alpha0.7) # 在条形图上添加数值标签 for bar, s in zip(bars, sales): height bar.get_height() ax1.text( bar.get_x() bar.get_width() / 2.0, height 2, f{s}, hacenter, vabottom, fontsize9, ) # --- 绘制棒棒糖图 (右图) --- ax2.vlines(xrange(len(months)), ymin0, ymaxsales, colorgray, linewidth2) ax2.scatter(xrange(len(months)), ysales, colorcoral, s50, zorder3) for i, s in enumerate(sales): ax2.text(i, s 3, f{s}, hacenter, vabottom, fontsize9) ax2.set_title(棒棒糖图 (Lollipop Chart - 月份销售额), fontsize14) ax2.set_ylabel(销售额 (万元)) ax2.set_xlabel(月份) ax2.set_xticks(range(len(months))) ax2.set_xticklabels(months, rotation45) # 旋转x轴标签以防重叠 ax2.grid(axisy, linestyle--, alpha0.7) ax2.set_ylim(0, max(sales) * 1.1) # --- 显示图形 --- plt.tight_layout() plt.show()在这个示例中数据代表的是连续的月份数值本身代表的是销售额这是一个“量”的概念。条形图的实心块能让人立刻感受到哪个月份的销售额更高整体的分布和对比关系一目了然。而棒棒糖图虽然也展示了数据但线条和圆点的组合在视觉上不如实心条形那样能直接传达“量”的感觉尤其是在数值差异不是特别巨大时对比效果会稍逊于条形图。总结棒棒糖图就像数据可视化世界中的少即是多哲学体现。它不是要取代传统条形图而是为数据可视化工具箱增加了一个有价值的选项。就像不同的画笔适合不同的绘画风格不同的图表类型也适合不同的数据故事。棒棒糖图的真正优势在于它改变了数据的讲述方式。它不说这是所有信息你自己找重点而是说看这里这些是关键点。这种焦点导向的特性使得棒棒糖图在现代快节奏的数据沟通中越来越受欢迎。设计可视化时我们不妨问问自己我想要观众首先看到什么如果是精确的数值点和清晰的排名那么棒棒糖图可能是你的理想选择。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询