作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在做这个 https://www.kaggle.com/edqian/twitter-climate-change-sentiment-dataset .
我已经将情感从数字转换为其字符描述(即 0 将是中性,1 将是 Pro,-1 将是反)
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
tweets_df = pd.read_csv('twitter_sentiment_data.csv')
tweets_df.loc[tweets_df['sentiment'] == 0, 'twt_sentiment'] = 'Neutral'
tweets_df.loc[tweets_df['sentiment'] == -1, 'twt_sentiment'] = 'Anti'
tweets_df.loc[tweets_df['sentiment'] == 1, 'twt_sentiment'] = 'Pro'
tweets_df = tweets_df.drop(['sentiment'], axis=1)
# display(tweets_df.head())
message tweetid twt_sentiment
0 @tiniebeany climate change is an interesting hustle as it was global warming but the planet stopped warming for 15 yes while the suv boom 792927353886371840 Anti
1 RT @NatGeoChannel: Watch #BeforeTheFlood right here, as @LeoDiCaprio travels the world to tackle climate change https://toco/LkDehj3tNn htt… 793124211518832641 Pro
2 Fabulous! Leonardo #DiCaprio's film on #climate change is brilliant!!! Do watch. https://toco/7rV6BrmxjW via @youtube 793124402388832256 Pro
3 RT @Mick_Fanning: Just watched this amazing documentary by leonardodicaprio on climate change. We all think this… https://toco/kNSTE8K8im 793124635873275904 Pro
4 RT @cnalive: Pranita Biswasi, a Lutheran from Odisha, gives testimony on effects of climate change & natural disasters on the po… 793125156185137153 NaN
我想创建一个带有子图的图表,以显示值(value)和百分比的情绪。我试过的代码:
sns.set(font_scale=1.5)
style.use("seaborn-poster")
fig, axes = plt.subplots(1, 2, figsize=(20, 10), dpi=100)
sns.countplot(tweets_df["twt_sentiment"], ax=axes[0])
labels = list(tweets_df["twt_sentiment"].unique())
axes[1].pie(tweets_df["twt_sentiment"].value_counts(),
autopct="%1.0f%%",
labels=labels,
startangle=90,
explode=tuple([0.1] * len(labels)))
fig.suptitle("Distribution of Tweets", fontsize=20)
plt.show()
结果不是我想要的,因为饼图标签是错误的。
最佳答案
labels = list(tweets_df["twt_sentiment"].unique())
标签的排列顺序与 tweets_df.twt_sentiment.value_counts()
的索引不同.索引决定切片顺序。因此,最好使用 .value_counts()
索引作为标签。 import pandas as pd
import matplotlib.pyplot as plt
tweets_df = pd.read_csv('data/kaggle/twitter_climate_change_sentiment/twitter_sentiment_data.csv')
tweets_df.loc[tweets_df['sentiment'] == -1, 'twt_sentiment'] = 'Anti'
tweets_df.loc[tweets_df['sentiment'] == 1, 'twt_sentiment'] = 'Pro'
tweets_df.loc[tweets_df['sentiment'] == 0, 'twt_sentiment'] = 'Neutral'
# assign value_counts to a variable; this is a pandas.Series
vc = tweets_df.twt_sentiment.value_counts()
# assign the value_counts index as the labels
labels = vc.index
# custom colors
colors = ['tab:blue', 'tab:orange', 'tab:green']
fig, axes = plt.subplots(1, 2, figsize=(10, 5), dpi=100)
# plot the pandas.Series directly with pandas.Series.plot
p1 = vc.plot(kind='bar', ax=axes[0], color=colors, rot=0, xlabel='Tweet Sentiment', width=.75)
# add count label
axes[0].bar_label(p1.containers[0], label_type='center')
# add percent labels
blabels = [f'{(v / vc.sum())*100:0.0f}%' for v in vc]
axes[0].bar_label(p1.containers[0], labels=blabels, label_type='edge')
# make space at the top of the bar plot
axes[0].margins(y=0.1)
# add the pie plot
axes[1].pie(vc, labels=labels, autopct="%1.0f%%", startangle=90, explode=tuple([0.1] * len(labels)), colors=colors)
fig.suptitle("Distribution of Tweets", fontsize=20)
plt.show()
关于python - Matplotlib 饼图标签与值不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69024302/
有人可以帮我理解为什么我的饼图百分比计算不正确吗?看截图: 根据我的计算,如 RHS 上所示,支出百分比应为 24.73%。传递给 Highcharts 的值如下:- 花费:204827099.36-
我正在制作圆环饼图。 我设置数据的颜色并获取钻取(它是保存外部切片的数据和配置的对象)切片的颜色为同一组颜色。我想设置要在向下钻取对象中使用的不同颜色数组。请参阅附图(外层切片有两种颜色:橙色和透明)
我是一名优秀的程序员,十分优秀!