Python 中的视觉叙事:让数据说话的 5 个创新技巧 为数据可视化增添戏剧性
数据可视化 – 这是一个现在经常被抛出的短语。但我们谈论的不仅仅是普通的旧图表和图形。
不 不 不。我们谈论的是讲故事。我们正在谈论将这些行和列的数字变成令人着迷的叙述。
现在是我们从“仅仅可视化”转向“视觉叙事”的时候了。准备好将您的 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:掌握数据可视化中的悬念艺术
我们要把一个普通的折线图变成一个情绪过山车。我们不是简单地透露股价,而是让观众预测高点和低点。我们可以通过使用以下函数来实现这一点:
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:充满情感的配色方案
让我们创建一个充满活力的热图,而不是普通条形图。这将为我们提供一个情感调色板,与观众建立更深层次的联系:
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:帕累托前沿比较——游戏规则改变者
听说过帕累托原则吧?这是一个以意大利经济学家维尔弗雷多·帕累托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:个性化故事的互动性
我们将散点图提升到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()
通过将鼠标悬停在图表上的每个点上,您可以阅读与该点相关的所有信息。非常互动,非常酷。
简而言之,通过控制权和探索性,交互式图表为数据传达和观众参与提供了最强有力的手段。
它打开了丰富多彩的渠道,可以讲述动态、个性化且具有高度吸引力的数据故事。
技巧-5:地理信息可视化
六边形覆盖物对于制作吸引人且有意义的地图非常有用。与在栅格上显示数据相比,它们可创建更清晰的视觉效果,并且还具有支持多个字符串属性的存储和可视化、在仪表盘中创建触发事件以及使用拉伸高度的额外优势。
游戏中角色的位置采用六边形表达,可以提高位置查找的算法效率上的意义,请参考链接👇
pip install ellipsis
pip install geopandas
pip install h3pandas
因此,使用geopandas,h3pandas和省略号,您可以非常快速地创建六边形地图,并在仪表板或应用程序中使用它们。
结束…
每个情节都展示了数据可视化中创造性叙事的力量。
请记住,精心制作的视觉故事可以成为理解、记忆和根据数据做出决策的强大工具。不要只呈现数据,要讲述数据故事。
请记住,这里的目标不是歪曲数据或混淆您的受众。相反,它是为了让您的数据更具相关性和记忆力。
归根结底,我们不仅仅是数字运算者——我们是讲故事的人,我们的媒介是数据。
快乐讲故事!
本文由 mdnice 多平台发布
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
相关推荐: CentOS7下双网卡iptables端口转发规则
1. 拓扑图 10.1.1.173(内网目标) 2.规则 /usr/sbin/iptables -t nat -I PREROUTING -i eth1 -d 172.16.5.100 -p tcp –d…