第五章. 可视化数据分析图表—综合应用(双y轴,堆叠柱形图,颜色渐变饼形图,等高线图)

第五章. 可视化数据分析图

5.7 综合应用

1.双Y轴可视化数据分析图表的实现 (柱形图+折线图)

双y轴,顾名思义就是两个y轴,可以通过双y轴看出发展情况的同时,还可以看到正常速度。

1).注意:

add_subplot一定要放在创建画布(matplotlib.pyplot.figure)之后,其他操作之前,放在后面可能会出现双坐标轴的情况

2).示例:

Excel中的数据:
在这里插入图片描述
代码:

import matplotlib.pyplot as plt
import pandas as pd

pd.set_option('display.unicode.east_asian_width', True)
df = pd.read_excel('F:\\Note\\清单.xlsx', sheet_name='Sheet5')
print(df)

plt.rcParams['font.sans-serif'] = ['SimHei']  # 解决中文乱码
plt.rcParams['axes.unicode_minus'] = False  # 解决负号不显示的问题

# 创建画布
fig = plt.figure(figsize=(8, 6))

# add_subplot一定要放在前面,放在后面会出现双坐标轴的情况
ax1 = fig.add_subplot(1, 1, 1)

# 创建标题
plt.title("销量情况对比")

# 双Y轴可视化数据分析图表的实现
# 柱形图
ax1.bar(x=df['书名'], height=df['销量(本)'], width=0.5, label='left')
ax1.set_xlabel("书名")
ax1.set_ylabel("销量(本)")

# 折线图
ax2 = ax1.twinx()#共享x轴,添加一条y轴坐标轴
ax2.plot(df['书名'], df['增量(%)'], color='black', linestyle='--', linewidth=1, marker='o', label=u'增量')
ax2.set_ylabel("增长量(%)")

# 设置文本标签
for x, y in zip(df['书名'], df['增量(%)']):
    ax2.text(x, y, '%.2f' % y, ha='center', va='bottom', fontsize=10, color='r')

# 显示图像
plt.show()

结果展示:
在这里插入图片描述

2.堆叠柱形图可视化数据分析图表的实现

堆叠柱形图可以直观,贴切的反应不同产品,不同人群的体验效果。

1).示例:

Excel中的数据:
在这里插入图片描述
代码:

import pandas as pd
import matplotlib.pyplot as plt

pd.set_option('display.unicode.east_asian_width', True)
df = pd.read_excel('F:\\Note\\清单.xlsx', sheet_name='Sheet2')
print(df)

# 设置画布
fig = plt.figure(figsize=(8, 6), facecolor='y')

plt.rcParams['font.sans-serif'] = ['SimHei']  # 解决中文乱码
plt.rcParams['axes.unicode_minus'] = False  # 解决负号不显示的问题

# X,Y轴刻度线的显示方向
plt.rcParams['xtick.direction'] = 'in'
plt.rcParams['ytick.direction'] = 'in'

x_label = df['姓名']

# # 柱形图
# x_label = np.arange(len(x_label))  # x轴刻度标签位置
width = 0.35  # 柱子的宽度

plt.bar(x_label, df['生物'], width=width, color='orange')
plt.bar(x_label, df['化学'], width=width, color='skyblue', bottom=df['生物'])

# 设置网格线
plt.grid(axis='y', color='0.5', linestyle='--', linewidth=1)

# 设置x,y轴坐标
plt.xlabel('姓名')
plt.ylabel('分数')

# # 设置坐标轴刻度
plt.xticks(x_label, df['姓名'])
plt.yticks(range(0, 201, 10))

# 设置文本标签
for x, y in zip(x_label, df['生物']):
    plt.text(x, y, '%.1f' % y, ha='center', va='baseline', fontsize=10, color='g')

for x, y, z in zip(x_label, df['生物'], df['化学']):
    plt.text(x, y+z, '%.1f' % z, ha='center', va='baseline', fontsize=10, color='r')

# 设置标题和图例
plt.title('成绩统计表')

# 设置图标图例
plt.legend(['生物', '化学'],
           loc='upper right')  # 手动添加图例时,有时文本会显示不全,在文本后面加一个逗号(,)可解决,例如('图书采购价目',)

# 调整图表与画布边缘间距
plt.subplots_adjust(left=0.15, bottom=0.15, right=0.9, top=0.9)

# 坐标轴的刻度线向内显示还是向外显示
plt.tick_params(left=True, bottom=True, right=False, top=False)

# 显示图像
plt.show()

结果展示:
在这里插入图片描述

3.颜色渐变饼形图的实现

根据所占比例自动配置渐变色,占比越大颜色越深,占比越小颜色越浅。

1).示例1:

Excel中的数据:
在这里插入图片描述
代码:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import cm
from matplotlib import font_manager as fm

pd.set_option('display.unicode.east_asian_width', True)
df = pd.read_excel('F:\\Note\\清单.xlsx', sheet_name='Sheet5')
print(df)

plt.rcParams['font.sans-serif'] = ['SimHei']  # 解决中文乱码
plt.rcParams['axes.unicode_minus'] = False  # 解决负号不显示的问题

# 设置画布
fig, ax = plt.subplots(figsize=(8, 6), facecolor='w')

# 饼图的颜色配置:颜色地图:秋天->彩虹->灰色->春天->黑色
colors = cm.rainbow(np.arange(len(df['销量(本)']))/ len(df['销量(本)']))

# 立体感带阴影的饼形图
patches, texts, autotexts = ax.pie(df['销量(本)'], labels=df['书名'], labeldistance=1.1, autopct='%.2f%%',
                                   startangle=90,
                                   shadow=True,
                                   radius=0.8, center=(0, 0), textprops={'fontsize': 9, 'color': 'k'}, pctdistance=0.6,
                                   colors=colors)

ax.axis('equal')

# 重新设置字体颜色
proptease = fm.FontProperties()

# 字体大小:从小到大
proptease.set_size("small")

# 设置属性
plt.setp(autotexts, fontproperties=proptease)
plt.setp(texts, fontproperties=proptease)

# 设置标题和图例
ax.set_title('销量占比')

# 显示图像
plt.show()

结果展示:
在这里插入图片描述

4.等高线图的实现 (matplotlib.pyplot.contourf)

等高线图是在地理课中讲述山峰山谷时绘制的图形中,在机器学习中也会被用在绘制梯度下降算法的图像中。

1).关键代码解析:

画等高线的核心函数时Matplotlib的contourf函数,但设个函数中的参数x,y对应的值是二位数据,需要使用Numpy的meshgrid方法,将x,y转换成二维数据,np.meshgrid(x,y)

2).示例:

代码:

import numpy as np
import matplotlib.pyplot as plt


def f(x, y):
    return (1 - x / 2 + x ** 5 + y ** 3) * np.exp(-x ** 2 - y ** 2)


# 设置画布
fig = plt.figure(figsize=(8, 6), facecolor='w')

# 生成x,y的数据
space = 256
x = np.linspace(-4, 4, space)
y = np.linspace(-4, 4, space)

# 把x,y转换为二维数据
X, Y = np.meshgrid(x, y)

# 绘制等高线
plt.contourf(X, Y, f(X, Y))

# 显示图像
plt.show()

结果展示:
在这里插入图片描述

注意:代码中所涉及到的函数和参数,在图表的常用设置1图表的常用设置2 有所介绍

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: Python电影数据分析柱形图可视化是指使用Python编程语言对电影数据进行分析,并将分析结果用柱形图进行可视化展示的过程。Python是一种高级编程语言,被广泛应用于数据科学领域。 Python电影数据分析的过程包括收集电影数据、清洗数据、分析数据并可视化展示。柱形图是一种最常用的数据可视化方式之一,它非常直观地表示出数据的分布情况,使得读者很容易理解数据分析的结果。 在电影数据分析中,柱形图可以用来表示不同电影类别的数量、不同电影票房收入的分布、电影评分的情况等。数据准备好后,可以使用Python中的数据分析库,如Pandas和NumPy等来分析数据。然后,使用Python可视化库,如Matplotlib和Seaborn等来生成柱形图,进而呈现分析结果。Matplotlib可生成基础的柱形图,Seaborn可以生成更复杂且美观的柱形图,并且可以在柱形图上添加其他元素,如回归线、置信区间等。 Python电影数据分析柱形图可视化是一种非常有用的数据分析工具,能够协助学者和业界专业人士更好地了解电影市场的现状,为电影制片人和投资者提供决策依据。 ### 回答2: Python电影数据分析柱形图可视化是指使用Python编程语言对电影数据进行分析并通过柱形图对分析结果进行可视化呈现。随着大数据时代的到来,数据分析在各行各业中变得越来越重要,而电影行业也不例外。通过对电影数据进行分析,我们可以了解电影市场的现状、电影类型的受欢迎程度、电影票房的变化趋势等信息。 在Python电影数据分析柱形图可视化中,我们需要使用Python中的数据分析可视化工具,比如Pandas、Matplotlib和Seaborn等。首先,需要准备电影数据,可以从一些公开的电影数据库中获取,例如IMDb、豆瓣电影等。然后,我们需要对数据进行清洗、处理和分析,比如统计电影类型、制片国家、上映时间、票房等信息。最后,我们可以使用柱形图将分析结果进行可视化呈现,以便更好地展示数据分析的结果。 柱形图是一种常用的数据可视化方式,可以用来展示不同类别的数据之间的差异和变化趋势。在Python电影数据分析柱形图可视化中,柱形图可以用来展示电影类型的数量、电影票房的收入、制片国家的分布等信息。通过柱形图,我们可以直观地看出不同类型的电影哪些更受欢迎,哪些更受观众欢迎,以及电影市场的整体趋势和变化。因此,Python电影数据分析柱形图可视化在电影行业中具有广泛的应用价值。 ### 回答3: Python是一种流行的编程语言,可用于数据分析可视化Python中有许多用于生成数据可视化的库,包括Matplotlib,Seaborn和Plotly等。 在电影数据分析中,柱形图可视化是一种常见的图表类型,可以用于比较不同电影的特定参数,如票房收入、IMDB评分、上映时间等等。使用Python库生成柱形图是相对简单的。 首先,需要安装并导入图表库,例如Matplotlib。然后,可以从csv文件或数据库中读取电影数据并进行处理,如排序、过滤或计算统计信息。最后,使用Matplotlib柱形图函数或子图函数将处理后的数据可视化。 例如,使用Python处理电影票房收入数据可视化柱形图,可以按照不同的国家或地区绘制票房收入的柱形图。更精细的可视化,可以使用Matplotlib颜色映射,将颜色编码映射到电影票房收入或IMDB评分等值上。 总之,Python电影数据分析柱形图可视化是一种非常有用的技术工具,可以方便、快速地对电影票房数据进行可视化展示,方便数据分析和预测。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值