中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
R和Python做數(shù)據(jù)可視化

R和Python使我們擁有生成復(fù)雜而有吸引力的統(tǒng)計(jì)圖形的能力,以便獲得洞察力和探索我們的數(shù)據(jù)。兩者都具備良好的處理數(shù)百萬(wàn)數(shù)據(jù)點(diǎn)的能力(根據(jù)平臺(tái)的不同可能有數(shù)十億)。

用Python可視化數(shù)據(jù)

Seaborn構(gòu)建在Matplotlib之上,與Matplotlib相比,Seaborn具有相對(duì)簡(jiǎn)單的語(yǔ)法和結(jié)構(gòu)。

首先,我們使用import seaborn as sns; sns.set()來(lái)加載和設(shè)置默認(rèn)為Python會(huì)話的seaborn主題。Matplotlib也必須加載,因?yàn)檫@兩個(gè)庫(kù)是同時(shí)使用的。

import seaborn as sns
sns.set()
import matplotlib.pyplot as plt
  1. set_style()設(shè)置圖形的背景主題?!皌icks”是最接近R的畫(huà)圖。

  2. set_context()將對(duì)圖形應(yīng)用預(yù)定義的格式,以適應(yīng)使用可視化的原因或上下文。font_scale=1用于設(shè)置圖中所有文本的字體大小。

  3. plt.figure()是一個(gè)控制matpltlib圖的不同方面的命令(如前所述,seaborn圖只是隱藏在幕后的Matplotlib圖)。

  4. sns.scatterplot()是用于傳遞參數(shù)以創(chuàng)建seaborn樣式的scatterplot的命令。

  • x='wt'將權(quán)重映射到x軸。

  • y='hp'將horsepower映射到y(tǒng)軸。

  • hue='cyl'將填充和著色散點(diǎn)。

  • palette =['red','green','blue']手動(dòng)覆蓋由hue 設(shè)定的red, green和blue調(diào)色板。

  • data='mtcars'允許我們使用數(shù)據(jù)集中的數(shù)據(jù)。

  • style='cyl'為每個(gè)cyinder類別分配形狀。

  • legend ='brief'將指定hue&size。

  1. size =(800,1000)控制圖上散點(diǎn)的最小和最大尺寸。

  2. plt.title()給出了圖片的主標(biāo)題。如果您是一個(gè)經(jīng)驗(yàn)豐富的Matplotlib用戶或使用過(guò)plt.suptitle(),那么在您知道將這兩者一起使用時(shí)的混淆之前。

  3. plt.xlabel()將格式化x軸標(biāo)簽。我使用set_ . .要訪問(wèn)該類以包含美學(xué)屬性。這有時(shí)會(huì)很混亂,但是有很多方法可以格式化seaborn/matplotlib圖。這對(duì)于創(chuàng)建好圖之后非常有用。圖形已經(jīng)用sns制作好了。scatterplot現(xiàn)在需要以這種方式覆蓋默認(rèn)格式。

  4. 對(duì)于y軸,pl .ylabel()以完全相同的方式工作。

#sns.set_style('darkgrid')
    sns.set_style('ticks')
    sns.set_context('talk')
    #sns.set_context('notebook', font_scale=1)
    plt.figure(figsize=(10,8)) #plt.figure(figsize=(width,height))
    sns.scatterplot(x='wt', y='hp', hue='cyl', palette=['red','green','blue'],
                    data=mtcars, style='cyl', legend='brief', sizes=(800,1000)
                   )
    plt.title('Motor Trend Car Road Tests of 1973-74 Models', fontsize=24, fontweight='bold')
    plt.xlabel('Weigt (1000lbs)').set_fontsize('22')
    plt.xlabel('Weigt (1000lbs)').set_fontweight('bold')
    plt.ylabel('Gross Horsepower').set_fontsize('22')
    plt.ylabel('Gross Horsepower').set_fontweight('bold');

正如我們所看到的,這個(gè)圖與ggplot2中生成的圖類似。Seaborn是Matplotlib的一個(gè)更簡(jiǎn)單的替代方案。

對(duì)于Seaborn需要?jiǎng)?chuàng)建一個(gè)新的圖片。有很多方法可以做到這一點(diǎn),而sns.relplot()就是其中之一。

  1. sns.set()將把默認(rèn)的Seaborn主題設(shè)置到Python環(huán)境中,它還可以用來(lái)覆蓋默認(rèn)參數(shù),正如我們看到的rc={'figure.figsize':(20,20)}。

  2. sns.relplot()有許多與上面討論的相同的參數(shù),在這里我們將討論新的參數(shù),因?yàn)檫@個(gè)圖是分面的。

  • col='gear'指定mtcars數(shù)據(jù)集中用于面化的列。

  • col_wrap=3指定了圖的位置。在本例中,圖將被放置在3列中。它將在一行中,因?yàn)闆](méi)有指定行數(shù)。

  • aspect=0.6是對(duì)繪圖大小的控制。我建議閱讀關(guān)于這方面的文檔,因?yàn)樵谶@一點(diǎn)上解釋起來(lái)可能會(huì)很混亂。

  1. g.fig.suptitle()為圖形創(chuàng)建標(biāo)題。

  • position=(0.5,1.05)是一個(gè)有趣的參數(shù),因?yàn)樗刂茦?biāo)題的位置。即使是很小的改變也能極大地改變標(biāo)題的位置。

  1. g。set_xlabels & g。set_ytags將像前面討論的那樣工作。

sns.set(rc={'figure.figsize':(20,20)})
  sns.set_style('ticks')
  sns.set_context('talk')

  g = sns.relplot(x='wt', y='hp', hue='cyl', palette=['red','green','blue'],
                  data=mtcars, col='gear', col_wrap=3,
                  height=6, aspect=0.6, style='cyl', sizes=(800,1000))

  g.fig.suptitle('Motor Trend Car Road Tests of 1973-74 Models' ,position=(0.5,1.05), fontweight='bold', size=18)
  g.set_xlabels('Weigt (1000lbs)',fontweight='bold', size=20)
  g.set_ylabels('Gross Horsepower',fontweight='bold', size=20);

用R可視化數(shù)據(jù)

使用ggplot2,我們可以通過(guò)向圖片添加美學(xué)層來(lái)創(chuàng)建簡(jiǎn)單且可定制的圖形。對(duì)于新用戶來(lái)說(shuō),一個(gè)很好的特性是除了加載ggplot2中使用的數(shù)據(jù)并給出幾何形狀之外,還可以(大多數(shù)情況下)以任何順序完成美學(xué)層。這是因?yàn)間gplot2是基于圖形語(yǔ)法的原則構(gòu)建的。這些原則使我們能夠創(chuàng)建驚奇的和富含信息的可視化。

下面的R代碼將加載ggplot2包(可能是R中最突出的可視化包),并為我們生成散點(diǎn)圖。

  1. ggplot(mtcars, aes(x=wt, y=hp))將加載ggplot2中使用的mtcars數(shù)據(jù)集,aes(x=wt, y=hp)將映射我們的圖的美學(xué),x美學(xué)為wt為x軸,y美學(xué)為hp為y軸。

  2. geom_point(size=1,aes(color=cyl, shape=cyl, fill=cyl))將生成前面提到的預(yù)定義美學(xué)和新的美學(xué)的散點(diǎn)圖。color=cyl將根據(jù)cyl的數(shù)量為散射點(diǎn)的輪廓提供一種獨(dú)特的顏色。shape=cyl將為散點(diǎn)提供一個(gè)獨(dú)特的形狀,并與顏色協(xié)同工作。fill=cyl將使用cyl填充散點(diǎn),而不僅僅是輪廓線。最好是使用顏色和填充在一起(如果你仔細(xì)觀察,會(huì)發(fā)現(xiàn)有一個(gè)很小的審美差異)。

  3. heme_bw()在ggplot2中為我們提供了一個(gè)預(yù)先生成的主題。然后可以使用正確的命令輕松地調(diào)整它。ggplot2具有用于此任務(wù)的簡(jiǎn)單且易于學(xué)習(xí)的語(yǔ)法,而且易于操作。

  4. theme()命令允許您更改第3點(diǎn)中已經(jīng)設(shè)置的任何主題的默認(rèn)設(shè)置(還可以使用它更改圖形的其他美學(xué))。

  • axis.text=element_text(face='bold', size=7格式化y軸和x軸的文本(軸上的數(shù)字)。face='bold'將文本加粗,size='7'將其大小增加到指定的大小。

  • axis.title=element_text(face='bold', size=10)的工作原理與上面的命令相同,但只適用于axis標(biāo)題。

  • axis.ticks=element_line(size=0.5)將使圖上的刻度更明顯

  • panel.background=element_rect(color = NA)是我決定添加的一個(gè)美學(xué)度量,它去掉了圖形周圍的矩形邊框

  • plot.title=element_text(face='粗體',size=11,hjust = 0.5))只需粗體顯示并更改主標(biāo)題的大小。hjust=0.5將標(biāo)題居中對(duì)齊

  • scale_color_manual(break =c(' 4', '6', '8'), values=c('red', 'green', 'blue'))將覆蓋默認(rèn)的配色方案,并將紅色添加到'4',綠色添加到'6',藍(lán)色添加到'8'。這將手動(dòng)覆蓋散點(diǎn)的輪廓顏色

  • scale_fill_manual(break =c(' 4', '6', '8'), values=c('red', 'green', 'blue'))將執(zhí)行與上面相同的操作,但這次是針對(duì)散點(diǎn)的內(nèi)部。

  • scale_y_continuous(break = seq(0,350,50))手動(dòng)覆蓋y軸上的數(shù)字,從0開(kāi)始,350結(jié)束,以50為增量。這將顯示在主要刻度。

  • scale_x_continuous(break =seq(1.5、5.5、0.5),minor_break =seq(1.5、5.5、1))對(duì)x軸執(zhí)行與上面相同的操作,并手動(dòng)覆蓋較小的刻度,但是這并不明顯。

  • scale_shape_manual(值=c(21,4,22))將定義給每個(gè)cylinders類別的形狀類型。

  1. options(repr.plot.width=4, repr.plot.height=3)當(dāng)您想要操縱圖形的寬度和高度時(shí),這是一個(gè)方便的命令。它在Jupyter特別有用。

 library(ggplot2)
  options(repr.plot.width=4, repr.plot.height=3)
     p <- ggplot(mtcars, aes(x=wt, y=hp)) 
          geom_point(size=1,aes(color=cyl, shape=cyl, fill=cyl)) 
          labs(title='Motor Trend Car Road Tests of 1973-74 Models'
          xlab('Weigt (1000lbs)'
          ylab('Gross Horsepower'
          theme_bw() 
          theme(axis.text=element_text(face='bold',
          size=7),
          axis.title=element_text(face='bold',
          size=10),
          axis.ticks=element_line(size=0.5),
          panel.background=element_rect(colour = NA),
          plot.title=element_text(face='bold', size=11,hjust = 0.5)) 
          scale_color_manual(breaks = c('4''6''8'), values=c('red''green''blue'))
          scale_fill_manual(breaks = c('4''6''8'), values=c('red''green''blue'))
          scale_y_continuous(breaks = seq(0,350,50)
          scale_x_continuous(breaks = seq(1.5,5.5,0.5), minor_breaks=seq(1.5,5.5,1)
          scale_shape_manual(values=c(21,4,22))
          p

ggplot2的另一個(gè)重要方面是它能夠?qū)?shù)據(jù)進(jìn)行分面處理,從而在一行代碼中創(chuàng)建多個(gè)圖。

  1. facet_grid(~gear) 將數(shù)據(jù)以gears的數(shù)量劃分,創(chuàng)建許多具有相同主題美學(xué)的相同情節(jié)。

options(repr.plot.width=7, repr.plot.height=4)
  p   facet_grid(~gear)

結(jié)論

我認(rèn)為主要的區(qū)別之一是,與ggplot2圖形相比,Seaborn圖具有更好的分辨率,并且所需的語(yǔ)法可以少得多(但這取決于環(huán)境)。Seaborn使用編程方法,用戶可以訪問(wèn)Seaborn和Matplotlib中的類來(lái)操縱這些圖。ggplot2使用分層的方法,用戶可以按照創(chuàng)建圖形的任何順序添加美學(xué)和格式(我相信,盡管需要大量代碼,但可以更簡(jiǎn)單)。大多數(shù)人都沒(méi)有注意到,這一點(diǎn)對(duì)某些人可能比其他人更重要,當(dāng)以圖形形式保存Python繪圖時(shí),它會(huì)比R生成的圖形占用更多的磁盤空間。在本文的圖形中,Seaborn/Matplotlib圖形比ggplot2圖形占用大約6倍的磁盤空間。
使用Seaborn和ggplot2非常有可能重新創(chuàng)建相同的圖形(盡管略有不同)。雖然工具不同,但它們?nèi)匀豢梢杂脕?lái)創(chuàng)建相同的對(duì)象。

作者:Asel Mendis
原文鏈接:
https://www.kdnuggets.com/2019/03/r-vs-python-data-visualization.html

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Matplotlib+Seaborn:一文掌握Python可視化庫(kù)的兩大王者
十分鐘掌握Seaborn,進(jìn)階Python數(shù)據(jù)可視化分析
哪些Python庫(kù)讓你相見(jiàn)恨晚?
為matplotlib設(shè)置不同的主題
python的高級(jí)畫(huà)圖seaborn庫(kù)安裝、學(xué)習(xí)、經(jīng)典實(shí)例
Python數(shù)據(jù)可視化:用Seaborn繪制高端玩家版散點(diǎn)圖
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服