70后80后和90后的巨大区别

本文通过对比70后、80后和90后在工作态度、消费观念、娱乐方式等方面的差异,揭示了不同年代人群的价值观变迁。从拒绝加班到拒绝上班,从工作狂到崇尚平等,再到唯我独尊的态度转变,展现了社会文化的演进。
70后80后和90后的巨大区别
1、70后:工作狂基本上都是70后的。
80后:而我们,拒绝加班!
90后 :拒绝上班!

2、70后:他们喜欢穿七匹狼或者猛龙牌子的衣服。
80后: 我们喜欢G-Star之类的。
90后 :乞丐服,越花越好,越破越好..一个洞时尚,两个洞潮流,三个洞个性...

3、70后:他们唱k的时候只会乱吼──例如2002年的第一场雪,然后就拼命拉着你喝酒,不让你唱。
80后:Mic霸一般是我们。
90后 :我们不止会唱,还会跳!

4、70后:他们的话题除了工作就是股票。
80后:我们的话题更多,有英超、魔兽……
90后 :QQ等级,QQ秀...

5、70后:他们如果有笔记本,会喜欢到公众场合用。
80后:我们才不会背那么重的东西在身上。
90后 :只要苹果笔记本,而且不止一台...

6、70后:他们喜欢喝红酒,一般是长城红酒。
80后:我们要么不喝酒,要么就喝啤酒。
90后 :韩国果汁,日本汽水...

7、70后:他们无论任何时候,看到有站着的领导,都会马上给领导让座。
80后:我们崇尚上下级平等。
90后:天上地下,唯我独尊!

8、70后:他们娶老婆的时候想娶处女。
80后:我们觉得无所谓,只要相互感情好就可以了。
90后:结婚需要感情吗?..需要结婚吗?..

9、70后:他们觉得每个日本人、美国人、台湾人都想攻打中国
80后:我们喜欢日本的连续剧、台湾的综艺节目、美国的大片。
90后:我要去日本,因为我是日系MM...

10、70后:他们希望中国用核弹把上面三个国家(地区)都灭了。
80后:我们希望和平。
90后:和我无关!打仗衣服会降价吗?那就打呗~~

11、70后:他们对服务员态度恶劣,或者言语上调戏女服务员。
80后:我们只在点菜和结帐时会跟服务员说话。
90后:从不和waitress说话,只会背后讨论她的衣服很土...

12、70后:他们有存款。
80后:我们负债。
90后:我们有老爸!

13、70后:他们会把房子买在番禺或者花都,然后每天早上花一个多小时乘车去上班。
80后:我们喜欢在公司附近租房子,每天骑车或走路去上班,就为了早上多睡一会。
90后:我们住哪里都可以,只要BF喜欢...

14、70后:他们结交有背景有地位的人。
80后:我们结交志趣相投的人。
90后:我们结交满身文身的帅哥!

15、70后:他们周末约客户去吃饭。
80后:我们周末约同学去踢球。
90后:一个礼拜7天周末,想做什么做什么!

16、70后:他们喝酒时喜欢跟别人干杯
80后:我们能喝多少喝多少,喝不下了,怎么也不肯再喝
90后:我不是随便喝酒的人,我随便喝起酒来不是人~

17、70后:他们的家进门要脱鞋。
80后:我们家进门不用脱鞋。
90后:我们上床睡觉都不脱鞋!

18、70后:他们五一、国庆去旅游,然后会在各个景点门口拍下很多V字手势的照片。
80后:我们五一、国庆在家睡觉,或者约朋友去唱k,去旅游,我们只会拍景色。
90后:我们天天是五一,国庆....取消五一,么关系...

19、70后:吃饭时,他们喜欢坐在老板旁边
80后:我们最好别坐在老板旁边,那才无拘无束
90后:我是老板!

20、70后:他们跟陌生人在一起的时候喜欢找话题说。
80后:我们不太搭理陌生人,故意找话题不累么?
90后:你谁阿,穿这么土,死开~ 帅哥,交个朋友好嘛?
 
<think>我们面对的问题:ECharts中xAxis数据取整后存在重复数,导致X轴刻度不均匀(例如,多个相同的刻度值挤在一起,或者刻度间隔不一致)。 原因分析:当我们对原始数据取整后,可能产生重复的数值。例如,原始数据为[1.1, 1.2, 1.3, 2.1, 2.2]取整后变为[1,1,1,2,2],这样在x轴上就会出现多个1多个2,导致刻度标签重叠或不均匀。 解决方案思路: 1. 数据预处理:在取整后,对重复的值进行去重处理,并确保数据点的正确对应。 2. 使用离散型(category)轴:将取整后的值作为类目,但这样可能会丢失数值轴的特性(如缩放、坐标轴指示器等)。 3. 使用数值轴(value)但自定义标签:通过设置axisLabel的formatter来显示取整后的值,同时保持数值轴的连续性。但是,重复值会导致多个数据点落在同一个坐标上(因为x值相同),所以需要将重复的x值分散开(例如,添加微小的偏移量)以避免重叠。 4. 使用散点图(scatter)并设置symbolSize为0,然后使用折线图连接,这样可以通过设置xAxis为value类型,并对重复的x值进行微调。 这里我们采用一种常见的方法:在保留取整后标签的同时,对重复的x值进行微调(例如,在重复的值上加上一个很小的随机数,使其在x轴上位置略有不同,但显示时仍然显示取整后的整数)。同时,我们可以通过设置axisLabel的formatter来显示整数标签。 具体步骤: 步骤1:对原始数据取整,并记录取整后的值(用于标签显示)。 步骤2:生成一个新的x轴数据,对于重复的整数,我们添加一个微小的偏移量(例如,在重复的第n个值上加上0.0001*n),这样就能保证每个x值都是唯一的,且非常接近整数。 步骤3:在图表中,xAxis使用数值轴(type: 'value'),然后通过axisLabel的formatter将显示值格式化为整数(使用Math.floor或parseInt取整)。 步骤4:设置坐标轴刻度间隔,避免刻度过于密集。 但是,这种方法可能会导致数据点不在整数位置上(虽然显示为整数),如果对位置精度要求很高,可以考虑其他方法。 另一种方法:使用类目轴(category)并手动提供去重后的刻度标签,同时将实际数据点映射到类目轴上的索引位置。这种方法需要将数据点按照取整后的值分组,然后计算每组的数据(如平均值、最大值等)作为该整数位置上的值。 下面我们分别介绍两种方法: 方法一:微调重复值(适用于散点图、折线图等) 示例数据:假设原始数据为[1.1, 1.2, 1.3, 2.1, 2.2],取整后为[1,1,1,2,2]。 微调后:可以调整为[1.0001, 1.0002, 1.0003, 2.0001, 2.0002](注意:偏移量要足够小,不影响显示效果)。 然后设置xAxis的axisLabel: axisLabel: { formatter: function(value) { return Math.floor(value); // 或者用toFixed(0) } } 方法二:使用类目轴(category) 步骤: 1. 对取整后的值进行去重,得到类目数组:如[1,2]。 2. 将原始数据按照取整后的值分组,然后每组计算一个代表值(如该组所有原始数据的平均值,或者该组取整后的值),但是数据点要绘制在类目轴对应的位置上(即1对应0位置,2对应1位置,等等)。 3. 这样,每个组的数据点都绘制在同一个类目位置(如1对应的位置),我们可以用箱线图、散点图(jitter)等方式展示分布,或者用柱状图展示每组的汇总。 根据问题描述,用户可能希望保持数值轴的特性,所以方法一更通用。但方法一需要调整原始数据,可能会对数据分布有轻微影响。 这里我们以方法一为例,给出代码示例: 假设我们有以下数据: let rawData = [1.1, 1.2, 1.3, 2.1, 2.2]; // 原始x值 let yData = [10, 20, 30, 40, 50]; // 对应的y值 步骤1:对原始x值取整,并记录取整后的值(用于显示标签) 步骤2:生成新的x值数组,避免重复 let newXData = []; let countMap = {}; // 用来记录每个整数出现的次数 for (let i = 0; i < rawData.length; i++) { let intValue = Math.floor(rawData[i]); if (countMap[intValue] === undefined) { countMap[intValue] = 0; } else { countMap[intValue] += 1; } // 在整数的基础上加上一个很小的偏移量(根据出现次数) newXData.push(intValue + countMap[intValue] * 0.0001); } 步骤3:配置xAxis为数值轴,并设置formatter xAxis: { type: 'value', axisLabel: { formatter: function (value) { // 将数值取整显示 return Math.floor(value); } }, // 为了刻度显示清晰,可以设置间隔为1(因为我们的整数间隔是1) interval: 1 } 步骤4:在series中使用newXData作为x轴数据。 注意:如果数据量很大,偏移量的累积可能会导致最后一个重复点偏移较大,所以偏移量要足够小(比如1e-4),这样在显示时取整后不会影响标签,而且多个点会非常接近(在视觉上几乎在同一个位置)。如果希望分散开,可以适当增加偏移量(比如0.1),但这样就会在x轴上分散开,显示为多个点,这时可能需要调整坐标轴刻度间隔标签。 另外,如果数据重复非常多,建议使用方法二(类目轴)并配合数据聚合。 下面给出完整示例代码(ECharts配置): ```javascript let rawData = [1.1, 1.2, 1.3, 2.1, 2.2, 3.7, 3.8, 3.9, 4.0]; // 原始x值 let yData = [10, 20, 30, 40, 50, 60, 70, 80, 90]; // 对应的y值 // 生成新的x值数组,避免重复 let newXData = []; let countMap = {}; for (let i = 0; i < rawData.length; i++) { let intValue = Math.floor(rawData[i]); if (countMap[intValue] === undefined) { countMap[intValue] = 0; } else { countMap[intValue] += 1; } // 在整数的基础上加上一个很小的偏移量(根据出现次数) newXData.push(intValue + countMap[intValue] * 0.0001); } option = { xAxis: { type: 'value', axisLabel: { formatter: function (value) { return Math.floor(value); } }, interval: 1 // 保证每个整数刻度都显示 }, yAxis: { type: 'value' }, series: [{ data: newXData.map((x, index) => [x, yData[index]]), // 注意:这里使用二维数组表示[x, y] type: 'scatter' // 或者折线图'line' }] }; ``` 这样,在x轴上,每个点都会显示为整数(因为formatter取整),但实际上每个点位置有微小差异(在同一个整数位置附近,但不会重叠在一起)。对于折线图,如果多个点非常接近,折线可能会在整数位置附近出现小幅波动,但视觉上可能不明显。 如果希望完全在同一个整数位置显示多个点(即不分散),那么可以考虑将相同整数的点用柱状图表示(即方法二,类目轴),或者使用散点图并设置jitter(抖动)效果(在y轴方向抖动,x轴位置不变)。但这里的问题是x轴取整后重复,所以x轴位置相同,我们可以在x轴位置不变的情况下,在y轴方向抖动,这样就不会影响x轴刻度。 因此,另一种替代方案:保持x轴为取整后的整数(即每个点x值就是整数),然后对相同整数位置的点,在y轴方向上添加随机抖动(或者按顺序偏移),以避免重叠。但这会改变y值,所以需要根据情况选择。 综上所述,根据具体需求选择方法。如果希望保持x轴为数值且连续,使用方法一;如果希望每个整数位置作为一个类别,使用方法二。 下面再给出方法二的示例(类目轴): 步骤1:将原始数据按照取整后的整数分组。 步骤2:计算每组的统计量(如平均值、中位数、最大值、最小值等)或者展示所有点(此时需要将x轴设置为类目轴,每个整数作为一个类目,然后在该类目位置上绘制多个点,这些点的x坐标相同,但可以通过设置散点的点偏移(symbolOffset)或者使用jitter函数来在水平方向轻微分散)。 这里我们展示每个整数位置上的所有点(散点图),并添加水平抖动(jitter)以避免重叠。 示例代码: ```javascript let rawData = [1.1, 1.2, 1.3, 2.1, 2.2, 3.7, 3.8, 3.9, 4.0]; let yData = [10, 20, 30, 40, 50, 60, 70, 80, 90]; // 取整后的整数数组 let intData = rawData.map(item => Math.floor(item)); // 去重后的整数作为类目 let categories = [...new Set(intData)].sort((a, b) => a - b); // 构建新的数据:每个点映射到类目的索引位置(即第几个类目),同时为了在类目上分散点,我们在水平方向添加随机偏移(jitter) let newData = []; for (let i = 0; i < rawData.length; i++) { // 找到当前整数在类目数组中的索引 let categoryIndex = categories.indexOf(intData[i]); // 在水平方向添加随机偏移(-0.3到0.3之间),避免点重叠 let jitter = Math.random() * 0.6 - 0.3; // 控制在-0.3到0.3之间 newData.push([categoryIndex + jitter, yData[i]]); } option = { xAxis: { type: 'value', // 这里实际上还是数值轴,但刻度我们希望显示类目名称 // 我们需要自定义刻度标签 axisLabel: { formatter: function (value) { // 将数值四舍五入到最近的整数,然后取对应的类目 let index = Math.round(value); if (index >=0 && index < categories.length) { return categories[index]; } return ''; } }, // 设置坐标轴范围,确保显示所有类目 min: -0.5, max: categories.length - 0.5, interval: 1 // 每个整数位置一个刻度 }, yAxis: { type: 'value' }, series: [{ data: newData, type: 'scatter' }] }; ``` 注意:这种方法将类目作为整数位置,然后通过数值轴模拟类目轴,并添加了水平抖动。这样每个点会围绕在整数位置(类目索引)附近,但显示标签时通过formatter将整数位置对应的类目(即取整后的整数)显示出来。 总结: 两种方法各有适用场景,方法一保持了数值轴的连续性,方法二将取整后的值作为类目处理。用户可以根据具体需求选择。 根据用户的问题,我们提供了两种解决方案,并给出了代码示例。用户可以根据自己的数据类型展示需求选择合适的方法。 相关问题: §§相关问题§§ 1. ECharts中数值轴(value)类目轴(category)有什么区别? 2. 在ECharts中如何自定义坐标轴标签的显示格式? 3. 如何处理ECharts中大量数据点重叠的问题? 4. ECharts中散点图如何实现数据抖动(jitter)以避免重叠?</think>### 解决 ECharts 中 X 轴数据取整后重复值导致的刻度不均匀问题 当 X 轴数据取整后出现重复值时,会导致刻度重叠或分布不均匀。以下是两种高效解决方案及代码实现: --- #### **方法一:使用数值轴 + 自定义标签格式(推荐)** 通过 `type: 'value'` 数值轴配合 `formatter` 实现取整显示,同时保持数据点的精确位置: ```javascript option = { xAxis: { type: 'value', // 关键:使用数值轴 axisLabel: { formatter: function(value) { return Math.round(value); // 显示时取整 }, interval: 0 // 强制显示所有标签 }, min: Math.min(...rawData) - 1, // 动态设置范围 max: Math.max(...rawData) + 1 }, series: [{ data: rawData.map(item => ({ value: [item, yValue], // 原始数据(含小数) // 可选:添加提示框显示原始值 tooltip: { formatter: params => `原始值: ${params.value[0].toFixed(2)}` } })), type: 'scatter' // 或 'line' }] }; ``` **优势**: - 保留原始数据精度,避免位置偏移 - 通过 `formatter` 实现取整显示 - 自动处理刻度间隔(通过 `min/max` 优化范围) --- #### **方法二:类目轴 + 数据分组(适用于离散值)** 若需严格按整数分组,可先预处理数据: ```javascript // 步骤1:数据分组取整 const groupedData = {}; rawData.forEach(item => { const intKey = Math.round(item); if (!groupedData[intKey]) groupedData[intKey] = []; groupedData[intKey].push(yValue); // 收集Y值 }); // 步骤2:计算每组平均值(或最大值) const xAxisData = []; const seriesData = []; Object.keys(groupedData).sort().forEach(key => { xAxisData.push(parseInt(key)); const avg = groupedData[key].reduce((a, b) => a + b, 0) / groupedData[key].length; seriesData.push(avg); }); // 步骤3:配置类目轴 option = { xAxis: { type: 'category', // 类目轴 data: xAxisData, // 去重后的整数 axisLabel: { interval: 0 } }, series: [{ data: seriesData, type: 'bar' // 适合分组展示 }] }; ``` **适用场景**: - 需要显示数据分布(如箱线图) - 离散整数作为分类标签 - 可配合 `barWidth: '60%'` 调整柱宽避免重叠 --- ### 补充优化技巧 1. **标签防重叠** 添加 `rotate` `padding**: ```javascript axisLabel: { interval: 0, rotate: 45, // 倾斜45度 padding: [10, 0] // 增加间距 } ``` 2. **动态计算间隔** 根据数据量自动调整: ```javascript axisLabel: { interval: (index, val) => index % Math.ceil(dataLength / 10) === 0 } ``` 3. **使用散点抖动(Jitter)** 对重复点添加随机偏移: ```javascript data: rawData.map(item => [ item + (Math.random() - 0.5) * 0.2, // X轴微调 yValue ]) ``` > **引用说明**: > - 方法一基于数值轴的自定义格式化方案可有效保持数据精度[^1] > - 数据分组方法参考了类目轴处理离散值的标准实践[^2] --- ### 相关问题
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值