日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

这种个性化可视化图也太可爱了吧!

發布時間:2024/9/15 编程问答 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 这种个性化可视化图也太可爱了吧! 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

寫在前面

在這篇文章中, 云朵君想介紹一個很酷的python手繪樣式可視化包——可愛的圖表?cutecharts。Cutecharts?非常適合為圖表提供更個性化的觸感。

Cutecharts?與常規的?Matplotlib?和?Seaborn?庫完全不同,它可以查看手工制作的圖表,并在將鼠標懸停在圖表上時向我們顯示值。Matplotlib?圖表中沒有懸停效果,這是可愛圖表的一個優勢。與?seaborn?相比,在可愛圖表中創建圖表的時間要長一些,但代碼數量仍然比標準?matplotlib?庫少。

該包可用于生成以下類型的圖表。目前,該庫支持五種不同的圖表——條形圖、餅圖、雷達圖、散點圖和折線圖。

繪圖準備

安裝cutecharts

這是個python第三方庫,要創建此圖表,你需要安裝cutecharts庫。具體安裝方法與其他庫一樣。

pip?install?cutecharts

導入庫

import?cutecharts.charts?as?ctc import?pandas?as?pd

數據集

看看 TMBD 數據是什么樣子的?數據有 21 列。

df?=?pd.read_csv(r'tmdb-movies.csv') df.head(2)

數據說明

TMBD 的數據取自?kaggle[1]

  • Popularity流行度:?指定電影流行度的數字量

  • Budget預算:?電影制作的預算。

  • Revenue收入:?電影產生的全球收入。

  • Original Title原片名:?翻譯或改編前電影的片名。

  • Cast演員:?在電影中扮演角色的演員姓名

  • Homepage主頁:?指向電影主頁的鏈接。

  • Director導演:?導演電影的導演姓名

  • Title片名:?電影名稱。

  • Keywords關鍵字:?與電影相關的關鍵字或標簽。

  • Overview概述:?對電影的簡要描述。

  • Runtime運行時間:?以分鐘為單位的電影運行時間。

  • Genres類型:?電影的類型,劇情、動作、喜劇、驚悚等。

  • Production Company制作公司:?電影的制作公司。

  • Vote Count投票數:?收到的票數。

  • Vote Average投票平均:?電影收到的平均評分。

日期時間

  • Release Date上映日期:?電影上映的日期。

  • Release Year發行年份:?電影發行的年份。

數據清洗

我們先清理數據,然后我們會看到可愛的圖表。

將特征更改為正確的日期時間格式并將流行功能四舍五入到小數點后兩位,以獲得更多內容。

df['release_date']?=?pd.to_datetime(df['release_date']) df['popularity']?=?round(df['popularity'],?2)

刪除不必要的功能

df.drop(['imdb_id',?'homepage',?'budget_adj','revenue_adj'],axis=1,?inplace=True)

用missing替換特征nan值

df['tagline'].fillna('missing',inplace=True) df['keywords'].fillna('missing',inplace=True) df['production_companies'].fillna('missing',inplace=True)? df['cast'].fillna('missing',inplace=True) df['director'].fillna('missing',inplace=True) df['genres'].fillna('missing',inplace=True) df['overview'].fillna('missing',inplace=True)

從預算和收入中刪除等于 0 的值。

df.drop(df[(df['budget']==0)?&?(df['revenue']==0)].index,inplace=True)

現在,數據是干凈的,我們現在可以進一步創建一些可愛的圖表。

cutecharts繪圖

cutecharts中使用的參數

分配你想要的圖表名稱,例如,你想要一個餅圖然后運行下面的代碼。

chart?=?ctc.Pie()

設置我們需要width, height在參數中添加的圖表的標題、寬度和高度。

chart?=?ctc.Pie('Title',?width='600px',?height='300px')

設置圖表選項,可以將使用set_options()函數。

chart.set_options()

設置x和y標簽的標題,我們將使用x_label,?y_label傳入set_options()函數示例如下。

chart.set_options(x_label='X?Labels',y_label='Y?Labels')

最后,我們將使用一個函數來顯示圖表render_notebook(),下面給出一個例子。

chart.render_notebook()

cutecharts繪圖

繪制餅圖

將要制作的圖表是甜甜圈圖表。我們將看到發行量最高的電影的前 5 年。

df_year?=?df['release_year'].value_counts( ).reset_index().sort_values(by='index',ascending=False)[:5].rename(columns={'index':'release_year','release_year':'Count'}) chart?=?ctc.Pie('Top?5?years',?width='600px',?height='300px') chart.set_options(labels=list(df_year['release_year']),?inner_radius=0) chart.add_series(list(df_year['Count'])) chart.render_notebook()餅圖

繪制圓環圖

我們將要制作的圖表是甜甜圈圖表。我們將看到發行量最高的電影的前 5 年。

df_year?=?df['release_year'].value_counts( ).reset_index().sort_values(by='index',?ascending=False)[:5].rename(columns={'index':'release_year','release_year':'Count'}) chart?=?ctc.Pie('Top?5?years',?width='600px',?height='300px') chart.set_options(labels=list(df_year['release_year']),?inner_radius=0.8) chart.add_series(list(df_year['Count'])) chart.render_notebook()圓環圖

所有的特性都與我們在餅圖中使用的相同,只是inner_radius使用了一個額外的參數;我們可以為甜甜圈圖的內部半徑給出0到1之間的任何值。如果你看到默認的圖例將在左上角,你可以指定圖例的值,如?upLeft、upRight、downLeft、downRight。

下圖顯示了?upRight?和?downLeft?上的圖例。

甜甜圈圖

繪制條形圖

該函數將拆分字符串并返回每個類型的計數。

def?count_genre(x): data_plot?=?df[x].str.cat(sep?=?'|')data?=?pd.Series(data_plot.split('|'))info?=?data.value_counts(ascending=False)return?info

調用函數來計算每個類型的電影。

df_genre_movies?=?count_genre('genres') df_genre_movies?=?pd.DataFrame(df_genre_movies).reset_index().rename(columns={'index':'Drama',?0:'Count'})

條形圖代碼

這里我們通過導入 faker 庫為不同的條使用顏色。

from?cutecharts.faker?import?Fakerchart?=?ctc.Bar('Top?Movie?Geners',?width='600px',?height='200px') chart.set_options(labels=list(df_genre_movies['Drama'][:7]), x_label='Drama', y_label='Count', colors=Faker.colors )chart.add_series('Geners',list(df_genre_movies['Count'][:7])) chart.render_notebook()條形圖

這里我們在可以明確為條形設置不同顏色的地方添加了另一個參數顏色set_options()?。

chart?=?ctc.Bar('Top?Movie?Geners',?width='600px',?height='200px')chart.set_options(labels=list(df_genre_movies['Drama'][:7]), x_label='Drama', y_label='Count',colors=['#FFF1C9',?'#F7B7A3',?'#EA5F89',?'#9B3192',?'#57167E',?'#47B39C','#00529B'])chart.add_series('Geners',list(df_genre_movies['Count'][:7])) chart.render_notebook()不同顏色條形圖

繪制折線圖

我們將計算多年來發行的電影數量,并僅繪制 20 年代的電影。

data?=?df.groupby('release_year').count()['id'].reset_index().tail(16)

制作折線圖以找出 20 年代以來電影的影響。

chart?=?ctc.Line("Impact?of?Movie?over?the?years?of?20's",?width='700px',?height='200px') chart.set_options(labels=list(data['release_year']),x_label='Years',y_label='Count',) chart.add_series('Years',list(data['id'])) chart.render_notebook()折線圖

多年來,電影發行量呈指數增長。

繪制散點圖

我們看看受歡迎程度與預算的關系,并找出預算是否大于電影的受歡迎程度。

chart?=?ctc.Scatter("Helps?to?gain?insights?like?if?movies?with?higher?budget?have?high?popularity",?width='700px',?height='200px') chart.set_options(x_label='Popularity',y_label='Budget',dot_size=1,colors=['#47B39C']) chart.add_series('Popularity?vs?Budget',?[(z[0],?z[1])?for?z?in?list(zip(df['popularity'],df['budget']))]) chart.render_notebook()散點圖

繪制雷達圖

雷達圖也稱為蜘蛛圖,主要用于顯示多變量值。對于雷達圖,我們將獲取咖啡消費的虛擬數據,其中特征為天、本周和上周。

data?=?{'Day':?['Mon',?'Tue',?'Wed',?'Thu',?'Fri',?'Sat',?'Sun'],'This?week':?[12,?10,?9,?9,?10,?3,?3],?'Last?week':?[15,?12,?8,?9,?11,?4,?3]} df_coffee?=?pd.DataFrame(data,?columns?=?['Day',?'This?week',?'Last?week'])

我們看看本周和上周每天咖啡消費量的雷達圖。

chart?=?ctc.Radar('Cups?of?coffee?consumed?per?day') chart.set_options(labels=list(df_coffee['Day']),?is_show_legend=True,legend_pos='upRight'?) chart.add_series('This?Week',?list(df_coffee['This?week']))? chart.add_series('Last?Week',?list(df_coffee['Last?week'])) chart.render_notebook()雷達圖

寫在最后

看到這里的小伙伴,相信你基本掌握了該可愛圖庫的使用了。我們看到了用 python 制作的驚人的手寫可愛圖表。這個包的一個不足是它只提供 5 個圖表。但也是我們常用的一些圖標??梢詣邮衷囋嚹?。

數據資料

[1]?

kaggle:?https://www.kaggle.com/kashishrastogi/eda-of-tmbd-dataset

END

各位伙伴們好,詹帥本帥搭建了一個個人博客和小程序,匯集各種干貨和資源,也方便大家閱讀,感興趣的小伙伴請移步小程序體驗一下哦!(歡迎提建議)

推薦閱讀

牛逼!Python常用數據類型的基本操作(長文系列第①篇)

牛逼!Python的判斷、循環和各種表達式(長文系列第②篇)

牛逼!Python函數和文件操作(長文系列第③篇)

牛逼!Python錯誤、異常和模塊(長文系列第④篇)

總結

以上是生活随笔為你收集整理的这种个性化可视化图也太可爱了吧!的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。