设为首页收藏本站
天天打卡

 找回密码
 立即注册
搜索
查看: 65|回复: 19

使用Python实现绘制发散条形图

[复制链接]

2

主题

45

回帖

131

积分

注册会员

积分
131
发表于 2024-4-20 09:46:17 | 显示全部楼层 |阅读模式
目录

发散条形图用于简化多个组的比较。它的设计允许我们比较各组中的数值。它还帮助我们快速地想象出有利的和不利的或积极的和消极的反应。条形图由从中间开始的两个水平条的组合组成-一个条从右向左延伸,另一个从左向右延伸。条形的长度与它所代表的数值相对应。
通常,两个分叉的条形用不同的颜色表示。左边的值通常但不一定是负面或不满意的反应。
Python没有特定的函数来绘制发散条形图。另一种方法是使用hlines函数绘制具有一定线宽值的水平线,将其表示为水平条。

数据集

Mercedes Benz Car Sales Data
地址:
https://www.kaggle.com/datasets/luigimersico/mercedes-benz-car-sales-data

实现步骤

导入模块
导入或创建数据
预处理数据集并清除不必要的噪声
指定表示水平条的颜色
按升序对值进行排序
设置x轴和y轴的标签以及图表的标题
显示发散条形图

实现代码
  1. import pandas as pd
  2. import matplotlib.pyplot as plt
  3. import string as str


  4. # Creating a DataFrame from the CSV Dataset
  5. df = pd.read_csv("car_sales.csv", sep=';')

  6. # Separating the Date and Mercedes-Benz Cars unit sales (USA)
  7. df['car_sales_z'] = df.loc[:, ['Mercedes-Benz Cars unit sales (USA)']]
  8. df['car_sales_z'] = df['car_sales_z'] .str.replace(
  9.         ',', '').astype(float)

  10. # Removing null value
  11. df.drop(df.tail(1).index, inplace=True)

  12. for i in range(35):
  13.         # Colour of bar chart is set to red if the sales
  14.         # is < 60000 and green otherwise
  15.         df['colors'] = ['red' if float(
  16.                 x) < 60000 else 'green' for x in df['car_sales_z']]

  17. # Sort values from lowest to highest
  18. df.sort_values('car_sales_z', inplace=True)

  19. # Resets initial index in Dataframe to None
  20. df.reset_index(inplace=True)

  21. # Draw plot
  22. plt.figure(figsize=(14, 10), dpi=80)

  23. # Plotting the horizontal lines
  24. plt.hlines(y=df.index, xmin=60000, xmax=df.car_sales_z,
  25.                 color=df.colors, alpha=0.4, linewidth=5)

  26. # Decorations
  27. # Setting the labels of x-axis and y-axis
  28. plt.gca().set(ylabel='Quarter', xlabel='Sales')

  29. # Setting Date to y-axis
  30. plt.yticks(df.index, df.Date, fontsize=12)

  31. # Title of Bar Chart
  32. plt.title('Diverging Bars Chart Example', fontdict={
  33.                 'size': 20})

  34. # Optional grid layout
  35. plt.grid(linestyle='--', alpha=0.5)

  36. # Displaying the Diverging Bar Chart
  37. plt.show()
复制代码
效果图


到此这篇关于使用Python实现绘制发散条形图的文章就介绍到这了,更多相关Python发散条形图内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

1

主题

49

回帖

121

积分

注册会员

积分
121
发表于 2024-4-26 12:23:38 | 显示全部楼层
确实牛逼

19

主题

54

回帖

501

积分

高级会员

积分
501

推广达人宣传达人热心会员付费会员

发表于 2024-5-17 18:40:30 | 显示全部楼层
让我们一起努力

0

主题

25

回帖

71

积分

注册会员

积分
71

热心会员付费会员

发表于 2024-6-21 10:32:41 | 显示全部楼层
看了LZ的帖子,我只想说一句很好很强大!

1

主题

52

回帖

128

积分

注册会员

积分
128
发表于 2024-7-13 19:05:29 | 显示全部楼层
感谢分享,受益匪浅!

0

主题

31

回帖

63

积分

注册会员

积分
63
发表于 2024-7-16 00:36:57 | 显示全部楼层
谢谢你的提醒,我会注意的。

0

主题

62

回帖

123

积分

注册会员

积分
123
发表于 2024-7-17 02:12:59 | 显示全部楼层
非常感谢你的观点,让我受益良多!

1

主题

56

回帖

130

积分

注册会员

积分
130
发表于 2024-7-20 00:54:11 | 显示全部楼层
我完全同意你的观点

1

主题

41

回帖

105

积分

注册会员

积分
105
发表于 2024-7-20 06:30:42 | 显示全部楼层
牛逼

1

主题

35

回帖

93

积分

注册会员

积分
93
发表于 2024-8-8 16:11:51 | 显示全部楼层
太棒了!感谢分享这个信息!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|爱云论坛 - d.taiji888.cn - 技术学习 免费资源分享 ( 蜀ICP备2022010826号 )|天天打卡

GMT+8, 2024-11-15 09:07 , Processed in 0.099326 second(s), 28 queries .

Powered by i云网络 Licensed

© 2023-2028 正版授权

快速回复 返回顶部 返回列表