为数据可视化增添戏剧性

Python 中的视觉叙事:让数据说话的 5 个创新技巧 为数据可视化增添戏剧性

数据可视化 - 这是一个现在经常被抛出的短语。但我们谈论的不仅仅是普通的旧图表和图形。

为数据可视化增添戏剧性_第1张图片

不 不 不。我们谈论的是讲故事。我们正在谈论将这些行和列的数字变成令人着迷的叙述。

现在是我们从“仅仅可视化”转向“视觉叙事”的时候了。准备好将您的 Python 数据可视化游戏提升到一个新的水平了吗?

让我们开始黑客攻击吧!

技巧-1:在可视化中使用隐喻

让我们将销售数据转化为令人惊叹的日出,代表企业的“新黎明”。我们可以使用 's 方法来创建渐变效果:

matplotlibfill_between

import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns

# Sales data as a rising sun
sales_data = np.random.randint(100, 200, 50).tolist()
sales_data.sort()
fig, ax = plt.subplots()
ax.plot(sales_data, color='black')
# Create a gradient effect for the sunrise
for i in range(len(sales_data)):
    ax.fill_between(range(i, i+2), 0, sales_data[i:i+2], color=plt.get_cmap('YlOrRd')(i*5))
plt.title('Sales Data: A New Dawn')
plt.xlabel('Time')
plt.ylabel('Sales')
plt.show()

这会产生惊人的日出效果:

为数据可视化增添戏剧性_第2张图片

并有助于将您无聊的销售数据转化为增长和新开始的美丽叙述。

技巧-2:掌握数据可视化中的悬念艺术

我们要把一个普通的折线图变成一个情绪过山车。我们不是简单地透露股价,而是让观众预测高点和低点。我们可以通过使用以下函数来实现这一点:

FuncAnimationmatplotlib.animation

import matplotlib.pyplot as plt
import matplotlib.animation as animation
import numpy as np
# A suspenseful reveal of a stock price
stock_price = np.random.randint(50, 100, 50)
fig, ax = plt.subplots()
line, = ax.plot(stock_price, color='red')
def update(num, line):
    line.set_data(np.arange(num), stock_price[:num])
    return line,
ani = animation.FuncAnimation(fig, update, frames=len(stock_price), fargs=[line], repeat=False)
plt.title('Stock Price Reveal')
plt.xlabel('Time')
plt.ylabel('Price')
plt.show()

这个折线图随着时间的推移而展开,创造了悬念和期待。

为数据可视化增添戏剧性_第3张图片

这是一个关于起伏的故事,一个视觉悬念,让你的观众粘在屏幕上。

技巧-3:充满情感的配色方案

让我们创建一个充满活力的热图,而不是普通条形图。这将为我们提供一个情感调色板,与观众建立更深层次的联系:

import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
# Sales data with emotionally-charged colors
months = ['Jan''Feb''Mar''Apr''May''Jun''Jul''Aug''Sep''Oct''Nov''Dec']
sales_data = np.random.randint(50, 100, 12)
# Convert to DataFrame
df = pd.DataFrame(sales_data.reshape(-1, len(months)), 
                  columns=months)
# Create a heatmap
sns.heatmap(df, cmap='coolwarm', annot=True)
plt.title('Sales Data with Emotionally-Charged Colors')
plt.xlabel('Month')
plt.ylabel('Sales')
plt.show()

此热图使用暖色和冷色来唤起情感,使销售数据感觉更加个性化和相关。

为数据可视化增添戏剧性_第4张图片

您正在运行热(红色)或冷(蓝色)。无论哪种方式,两者之间都有戏剧性的对比。

技巧-4:帕累托前沿比较——游戏规则改变者

听说过帕累托原则吧?这是一个以意大利经济学家维尔弗雷多·帕累托Vilfredo Pareto命名的概念,该概念指出,大约80%的影响来自20%的原因。

在数据可视化中,我们可以使用此原则来展示“最佳”选项,其中“最佳”是基于您正在考虑的变量的主观术语。

假设您正在比较不同营销策略的效果。您拥有每个策略的成本和由此带来的销售额增长。帕累托前线图将让您确定为您带来最大收益的策略。

以下是创建这样一个情节的方法,其中包含策略列表,然后进行演示,一些随机成本和相关的销售增长。最后,带有注释的颜色编码散点图:

帕累托前沿比较-在此示例中,PPC是最佳选择。

在此可视化中,每个点的颜色代表帕累托前沿值,即销售增长减成本。根据帕累托原理,价值最高的策略是我们的“最佳”选择。

import matplotlib.pyplot as plt
import numpy as np

# Marketing strategies
strategies = ['SEO''Email''Affiliate''PPC''Content''Social''Display''Direct''Referral''PR']

# Cost and sales increase for each strategy
cost = np.random.randint(1000, 5000, 10)
sales_increase = np.random.randint(500, 2000, 10)

# Pareto front
pareto_front = sales_increase - cost
pareto_front_sorted = np.argsort(pareto_front)

plt.figure(figsize=(10,6))
plt.scatter(cost, sales_increase, c=pareto_front, cmap='viridis', s=100)
plt.colorbar(label='Pareto Front')
plt.xlabel('Cost')
plt.ylabel('Sales Increase')
for i, txt in enumerate(strategies):
    plt.annotate(txt, (cost[i], sales_increase[i]))
plt.title('Pareto Front Comparison of Marketing Strategies')
plt.show()

这个图表不仅提供了清晰的比较,而且其生动的颜色和战略性注释使它令人难忘。

为数据可视化增添戏剧性_第5张图片

这就是数据叙事!

技巧-5:个性化故事的互动性

我们将散点图提升到3D交互图,让观众控制浏览和探索数据:

这个3D交互图允许观众悬停和旋转图表,提供个人化的实践体验和促进探索。

通过鼠标浏览该交互式图表,观众可以发现更多数据背后的信息。

例如,通过点击特定的战略数据点,可以看到该策略能带来的具体销售增长和成本。这允许观众根据自己的需求和兴趣创建数据故事。

交互式图表比静态视图提供了更丰富的体验,能讲述更个性化和吸引人的故事。它使数据成为一种工具,让观众探索并获得自己想要的信息。

import plotly.express as px

# Interactive 3D scatter plot
df = px.data.iris()
fig = px.scatter_3d(df, x='sepal_width', y='sepal_length', z='petal_length', color='species'
                    size='petal_length', hover_data=['petal_width'])
fig.show()

通过将鼠标悬停在图表上的每个点上,您可以阅读与该点相关的所有信息。非常互动,非常酷。

简而言之,通过控制权和探索性,交互式图表为数据传达和观众参与提供了最强有力的手段。

它打开了丰富多彩的渠道,可以讲述动态、个性化且具有高度吸引力的数据故事。

为数据可视化增添戏剧性_第6张图片

技巧-5:地理信息可视化

六边形覆盖物对于制作吸引人且有意义的地图非常有用。与在栅格上显示数据相比,它们可创建更清晰的视觉效果,并且还具有支持多个字符串属性的存储和可视化、在仪表盘中创建触发事件以及使用拉伸高度的额外优势。

游戏中角色的位置采用六边形表达,可以提高位置查找的算法效率上的意义,请参考链接

pip install ellipsis
pip install geopandas
pip install h3pandas

因此,使用geopandas,h3pandas和省略号,您可以非常快速地创建六边形地图,并在仪表板或应用程序中使用它们。

为数据可视化增添戏剧性_第7张图片 为数据可视化增添戏剧性_第8张图片

结束...

每个情节都展示了数据可视化中创造性叙事的力量。

请记住,精心制作的视觉故事可以成为理解、记忆和根据数据做出决策的强大工具。不要只呈现数据,要讲述数据故事。

请记住,这里的目标不是歪曲数据或混淆您的受众。相反,它是为了让您的数据更具相关性和记忆力。

归根结底,我们不仅仅是数字运算者——我们是讲故事的人,我们的媒介是数据。

快乐讲故事!

本文由 mdnice 多平台发布

你可能感兴趣的:(后端)