当前位置: 首页 新闻详细

词云图怎么做,用Python的Matplotlib库绘制动态曲线图

一、词云图怎么做

词云图做法如下:

1.第一种方法:借助在线工具,也就是在网页上就能完成词云图的制作和输出。目前支持在线制作词云图的网站有:WordArt、Wordiout、微词云、易词云、美寄词云等;

2.第二种方法:直接使用有词云图制作功能的软件,比如:FineBI、Tableau、SmartBI、BDP等,词云图只是这些软件的一个小功能;

二、matlab可以做自定义形状的词云图吗?

Matlab是一种用于科学计算和数据分析的编程语言,通常不是用来生成词云图的主要工具。词云图通常用于展示文本数据中频繁出现的词汇,并以词汇的频率和大小来表示它们在文本中的重要性。

在Matlab中,虽然没有专门用于生成词云图的内置函数,但您可以使用Matlab的图形绘制功能和文本处理函数来自定义生成词云图。以下是一个简单的步骤:

  • 获取文本数据:从外部文本文件、数据库或其他数据源获取文本数据,这将是生成词云图的原始数据。

  • 文本处理:使用Matlab的文本处理函数,例如textscan、regexp和strsplit等,对文本数据进行处理,例如去除停用词、分词等。

  • 词频统计:使用Matlab的计算功能,例如histcounts和unique等,对处理后的文本数据进行词频统计,得到每个词汇的频率信息。

  • 图形绘制:使用Matlab的图形绘制函数,例如scatter、text和annotation等,根据词频信息和自定义的形状,绘制词云图。

  • 需要注意的是,相对于其他专门用于生成词云图的工具,如Python中的WordCloud库或R中的wordcloud包,使用Matlab生成词云图可能需要更多的编程和图形绘制知识,并且可能需要手动处理文本数据和自定义词云图的形状。

    用Python的Matplotlib库绘制动态曲线图

    大家好,欢迎来到Crossin的编程教室!

    我们经常会在视频中看到一些动态曲线图,用来对比不同数据的变化趋势。

    今天我们就来讲讲如何通过Python的Matplotlib库来制作这样的动态曲线图。

    效果预览

    播放

    下一个

    打开循环播放

    00:00

    /

    00:00

    倍速

    3.0X

    2.0X

    1.5X

    1.25X

    1.0X

    0.75X

    0.5X

    语言

    多音轨

    AirPlay

    0

    静音播放中,点击恢复音量

    画中画

    网页全屏

    全屏

    你可以刷新试试

    视频信息

    1.33.6

    播放信息上传日志调试信息[X]

    视频ID

    VID

    s3512hqfpzn

    播放流水

    Flowid

    53039274024b5d024ca061d0107add30

    播放内核

    Kernel

    -

    显示器信息

    Res

    -

    帧数

    -

    缓冲健康度

    -

    网络活动

    net

    -

    视频分辨率

    -

    编码

    Codec

    -

    mystery

    mystery

    -

    按住画面移动小窗X

    配上动感的音乐感觉就是不一样啊,下面将分以下几个部分对制作过程进行介绍。

    01.引言

    动态曲线图不同于动态气泡图,它可以查看部分指标在一段时间内的变化趋势,本期推文将推出动态曲线图的Matplotlib绘制过程,核心过程为折线图和散点图的绘制,详细过程如下:

    02.数据处理

    由于需要查某些指标随时间的变化趋势,可将数据处理成如下形式(部分):

    图表中的china、usa、japan等变量可以结合自己的实际需求进行更改,而time列则是时间变化。上述数据为本次绘制动态曲线图所需数据,即从gapminder网站下载的平均个人收入(Incomeperperson)数据整理而成,处理代码主要如下:

    这里eq(nation)操作为提取自己所需数据,最后通过pandas的concat()操纵进行提取数据合并即可。

    03.数据可视化

    动态图表的绘制主要在于折线图和散点图的绘制,我们采用的依旧还是面向对象式绘图方式,这里建议绘制较为复杂的图表时多采用此方法进行绘制。完整绘图过程如下:

    绘图的核心代码(以china为例)主要在第16-24行,详细解释如下:

    idx=data_test.time

    折线图:

    ax.plot(idx,data_test['china'],color='#FF5872',lw=4)#折线图

    python制作动态图或词云图

    其中,x和y参数分别设置为数据的time列和china列,color和线宽lw属性则是为了美化折线图。

    散点图:

    ax.scatter(idx.tolist()[-1],data_test['china'].tolist()[-1],color='#FF5872',edgecolor='black',s=280,lw=2.5,zorder=4)#散点图

    散点图的绘制则需知道我们只需要绘制最后一个散点,即获取最后一个数据,因此scatter的x,y均有[-1]的索引,当然,我们需在之前使用tolist()方法转变成数据列表形式,填充颜色color、散点边框颜色edgecolor、散点大小s、和线宽lw均可根据自己需要进行定制化设置。这里需要注意的是zorder属性的设置,这里设置zorder=4,表示散点图绘制在折线图之后,即散点图压在折线图之上,使绘图更加美观。

    文本(国家名):

    ax.text(idx.tolist()[-1]+5,data_test['china'].tolist()[-1]-250,'china',size=15,c='#FF5872',va='top',ha='left',fontweight='bold')#国家名

    这里的x和y属性则是根据实际情况进行慢慢调试,其他的属性则是美化图表使用。

    文本(数值):

    ax.text(idx.tolist()[-1]+5,data_test['china'].tolist()[-1]-250,'china',size=15,c='#FF5872',va='top',ha='left',fontweight='bold')#国家名

    由于数据较大,这里

    ':{:,.0f}'.format(data_test['china'].tolist()[-1])对文本进行格式化操作,其他属性则根据自己需求进行设置即可。

    部分详细解释如下:

    第77-84行则是添加位置固定的文本内容,设置transform=ax.transAxes则使文本位置不随数据变化而变动。这里需要指出的是,一般的绘图过程,固定文本一般都是在图表的刻度、轴等属性设置结束后再进行添加,这点则需要注意,好的绘图习惯可以大大减少绘图时间哦

    第66-71行则是自定义y轴的刻度比例范围,由于,较早年份的数据较为集中,使图表绘制集中在一块,影响美观,特经此过程进行设置,而这也是matplotlib3.1版本新添加的内容。

    第53行使用ax.axvline()为动态图表添加一条推进线。

    第54-64行则是对图表刻度、轴脊等属性进设置。

    第86行ax.set_axisbelow(True)设置网格线等属性位于图表图层之下。

    下面给出一年份数据绘制的曲线图结果:

    备注:要想生成这种暗黑背景风格的图表,则可通过以下设置完成:

    #设置画布figure颜色plt.figure(facecolor='#1D1E23',edgecolor='#1D1E23')#对Axis进行背景颜色设置ax.set_facecolor('#373E4B')

    04.总结

    Matplotlib绘制动态曲线图较动态气泡图而言,绘制过程较为简单,主要就是折线图和散点图的配合使用,其他的就是图表属性的定制化设置了,个人能力有限,发现错误的同学可以留言告知哈~~

    作者:宁俊骐

    来源:DataCharm

    Crossin的第2本书《码上行动:利用Python与ChatGPT高效搞定Excel数据分析》已经上市了。

    【教程】:python

    【答疑】:666

    发布人:pw4657639010 发布时间:2024-07-29