电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Matplotlib可視化之自定義顏色繪制精美統計圖

瀏覽:6日期:2022-06-17 16:50:10
自定義顏色

在生活中,我們可能對色彩的搭配與審美有自己的偏好,因此,我們可能希望matplotlib遵循自定義的顏色方案,以便所繪制的圖形更好地適合文檔或網頁。

matplotlib中有多種定義顏色的方法,常見的方法包括:

1.三元組(Triplets):顏色可以描述為一個實數三元組,即顏色的紅、藍、綠分量,其中每個分量在[0,1]區間內。因此,(1.0, 0.0, 0.0)表示純紅色,而(1.0, 0.0, 1.0)則表示粉色。

2.四元組(Quadruplets):它們前三個元素與三元組定義相同,第四個元素定義透明度值。此值也在[0,1]區間內。將圖形渲染到圖片文件中時,使用透明顏色可以使繪制圖形與背景進行混合。

3.預定義名稱:matplotlib將標準HTML顏色名稱解釋為實際顏色。例如,字符串red即可表示為紅色。同時一些某些顏色的具有簡潔的別名,如下表所示:

別名 顏色 顯示 b blueg greenr redc cyanm magentay yellowk blackw white

4.HTML顏色字符串:matplotlib可以將HTML顏色字符串解釋為實際顏色。這些字符串被定義為#RRGGBB,其中RR、GG和BB是使用十六進制編碼的紅色、綠色和藍色分量。

5.灰度字符串:matplotlib將浮點值的字符串表示形式解釋為灰度,例如0.75表示中淺灰色。

使用自定義顏色繪制曲線圖

通過設置plt.plot()函數的參數color(或等效的簡寫為c),可以設置曲線的顏色,如下所示:

import numpy as npimport matplotlib.pyplot as pltdef pdf(x, mu, sigma): a = 1. / (sigma * np.sqrt(2. * np.pi)) b = -1. / (2. * sigma ** 2) return a * np.exp(b * (x - mu) ** 2)x = np.linspace(-6, 6, 1000)for i in range(5): samples = np.random.standard_normal(50) mu, sigma = np.mean(samples), np.std(samples) plt.plot(x, pdf(x, mu, sigma), color = str(.15*(i+1)))plt.plot(x, pdf(x, 0., 1.), color = ’k’)plt.plot(x, pdf(x, 0.2, 1.), color = ’#00ff00’)plt.plot(x, pdf(x, 0.4, 1.), color = (0.9,0.9,0.0))plt.plot(x, pdf(x, 0.4, 1.), color = (0.9,0.9,0.0,0.8))plt.show()

Matplotlib可視化之自定義顏色繪制精美統計圖

使用自定義顏色繪制散點圖

可以以同樣的方式像控制曲線圖一樣控制散點圖的顏色。有兩種可用的形式:

1.為所有點使用相同的顏色 :所有點都將以相同的顏色顯示。

2.為每個點定義不同的顏色:為每個點提供不同的顏色。

為所有點使用相同的顏色

利用從二元高斯分布中提取的兩組點y_1和y_2,每一組中點的顏色相同:

import numpy as npimport matplotlib.pyplot as plty_1 = np.random.standard_normal((150, 2))y_1 += np.array((-1, -1)) # Center the distrib. at <-1, -1>y_2 = np.random.standard_normal((150, 2))y_2 += np.array((1, 1)) # Center the distrib. at <1, 1>plt.scatter(y_1[:,0], y_1[:,1], color = ’c’)plt.scatter(y_2[:,0], y_2[:,1], color = ’b’)plt.show()

Matplotlib可視化之自定義顏色繪制精美統計圖

為每個點定義不同的顏色

我們總會遇到這樣的繪圖場景,需要為不同類別的點使用不同的顏色進行繪制,以觀察不同類別間的差異情況。以Fisher’s iris數據集為例,其數據集中數據類似如下所示:

5.0,3.3,1.4,0.2,Iris-setosa7.0,3.2,4.7,1.4,Iris-versicolo

數據集的每個點都存儲在以逗號分隔的列表中。最后一列給出每個點的標簽(標簽包含三類:Iris-virginica、Iris-versicolor 和Iris-Vertosa)。在示例中,這些點的顏色將取決于它們的標簽,如下所示:

import numpy as npimport matplotlib.pyplot as pltlabel_set = ( b’Iris-setosa’, b’Iris-versicolor’, b’Iris-virginica’,)def read_label(label): return label_set.index(label)data = np.loadtxt(’iris.data’, delimiter = ’,’, converters = { 4 : read_label })color_set = (’c’, ’y’, ’m’)color_list = [color_set[int(label)] for label in data[:,4]]plt.scatter(data[:,0], data[:,1], color = color_list)plt.show()

Matplotlib可視化之自定義顏色繪制精美統計圖Tips:

對于三種可能的標簽,分別指定一種唯一的顏色。顏色在color_set中定義,標簽在label_set中定義。label_set中的第i個標簽與color_set中的第i個顏色相關聯。然后我們利用它們把標簽列表轉換成顏色列表color_list。然后只需調用plt.scatter()一次即可顯示所有點及其顏色。我們也可以通過對三個不同的類別單獨調用plt.scatter()來實現,但這將需要更多的代碼。另外需要注意的是:如果兩點有可能有相同的坐標,但有不同的標簽,顯示的顏色將是后繪制點的顏色,可以使用透明顏色,用來顯示重疊點。

為散點圖中數據點的邊使用自定義顏色

與color參數控制點的顏色一樣,可以使用edgecolor參數控制數據點的邊的顏色。可以為每個點的邊設置相同的顏色:

import numpy as npimport matplotlib.pyplot as pltdata = np.random.standard_normal((100, 2))plt.scatter(data[:,0], data[:,1], color = ’1.0’, edgecolor=’r’)plt.show()

Matplotlib可視化之自定義顏色繪制精美統計圖

Tips:也可以像在為每個點定義不同的顏色部分中介紹的一樣為每個點的邊設置不邊的顏色

使用自定義顏色繪制條形圖

控制繪制條形圖使用的顏色與曲線圖和散點圖的工作原理相同,即通過可選參數color:

import numpy as npimport matplotlib.pyplot as pltw_pop = np.array([5., 30., 45., 22.])m_pop = np.array( [5., 25., 50., 20.])x = np.arange(4)plt.barh(x, w_pop, color=’m’)plt.barh(x, -m_pop, color=’c’)plt.show()

Matplotlib可視化之自定義顏色繪制精美統計圖Tips:

使用pyplot.bar()和pyplot.barh()函數自定義顏色繪制條形圖的工作方式與pyplot.scatter()完全相同,只需設置可選參數color,同時也可以參數edgecolor控制條形邊的顏色。

import numpy as npimport matplotlib.pyplot as pltvalues = np.random.random_integers(99, size = 50)color_set = (’c’, ’m’, ’y’, ’b’)color_list = [color_set[(len(color_set) * val) // 100] for val in values]plt.bar(np.arange(len(values)), values, color = color_list)plt.show()

Matplotlib可視化之自定義顏色繪制精美統計圖

使用自定義顏色繪制餅圖

自定義餅圖顏色的方法類似于條形圖:

import numpy as npimport matplotlib.pyplot as pltcolor_set = (’c’, ’m’, ’y’, ’b’)values = np.random.rand(6)plt.pie(values, colors = color_set)plt.show()

Matplotlib可視化之自定義顏色繪制精美統計圖Tips:

餅圖接受使用colors參數(注意,此處是colors,而不是在plt.plot()中使用的color)的顏色列表。但是,如果顏色數少于輸入值列表中的元素數,那么plt.pie()將循環使用顏色列表中的顏色。在示例中,使用包含四種顏色的列表,為包含六個值的餅圖著色,因此,其中有兩個顏色將使用兩次。

使用自定義顏色繪制箱型圖

將箱型圖中線條顏色進行修改:

import numpy as npimport matplotlib.pyplot as pltvalues = np.random.randn(100)b = plt.boxplot(values)for name, line_list in b.items(): for line in line_list:line.set_color(’m’)plt.show()

Matplotlib可視化之自定義顏色繪制精美統計圖

使用色彩映射繪制散點圖

如果要在圖形中使用多種顏色,逐個定義每種顏色并不是最佳方案,色彩映射可以解決此問題。色彩映射用一個變量對應一個值(顏色)的連續函數定義顏色。matplotlib提供了幾種常見的顏色映射;大多數是連續的顏色漸變。色彩映射在matplotib.cm模塊中定義,提供創建和使用色彩映射的函數,它還提供了預定義的色彩映射選擇。函數pyplot.scatter()接受color參數的值列表,當提供cmap參數時,這些值將被解釋為色彩映射的索引:

import numpy as npimport matplotlib.cm as cmimport matplotlib.pyplot as pltn = 256angle = np.linspace(0, 8 * 2 * np.pi, n)radius = np.linspace(.5, 1., n)x = radius * np.cos(angle)y = radius * np.sin(angle)plt.scatter(x, y, c = angle, cmap = cm.hsv)plt.show()

Matplotlib可視化之自定義顏色繪制精美統計圖

Tips:在matplotlib.cm模塊中提供了大量預定義的色彩映射,其中cm.hsv包含全光譜的顏色。

使用色彩映射繪制條形圖

plt.scatter()函數內置了對色彩映射的支持,其他一些繪圖函數也內置支持色彩映射。但是,有些函數(如pyplot.bar())并未內置對色彩映射的支持。但是matplotlib可以從顏色映射顯式生成顏色:

import numpy as npimport matplotlib.cm as cmimport matplotlib.pyplot as pltimport matplotlib.colors as colvalues = np.random.random_integers(99, size = 50)cmap = cm.ScalarMappable(col.Normalize(0, 99), cm.binary)plt.bar(np.arange(len(values)), values, color = cmap.to_rgba(values))plt.show()

Matplotlib可視化之自定義顏色繪制精美統計圖

Tips:首先創建色彩映射cmap,以便將[0, 99]范圍內的值映射到matplotlib.cm.binary的顏色。然后,函數cmap.to_rgba將值列表轉換為顏色列表。因此,盡管plt.bar并未內置色彩映射支持,但依舊可以使用并不復雜的代碼實現色彩映射。

創建自定義配色方案

matplotlib使用的默認顏色考慮的主要對象是打印文檔或出版物。因此,默認情況下,背景為白色,而標簽、軸和其他注釋則顯示為黑色,在某些不同的使用環境中,我們可能需要使用的配色方案;例如,將圖形背景設置為黑色,注釋設置為白色。在matplotlib中,各種對象(如軸、圖形和標簽)都可以單獨修改。但逐個更改這些對象的顏色配置并非最佳方案。在matplotlib中,所有對象都可以利用集中式配置修改其默認顏色:

import numpy as npimport matplotlib as mplfrom matplotlib import pyplot as pltmpl.rc(’lines’, linewidth = 2.)mpl.rc(’axes’, facecolor = ’k’, edgecolor = ’w’)mpl.rc(’xtick’, color = ’w’)mpl.rc(’ytick’, color = ’w’)mpl.rc(’text’, color = ’w’)mpl.rc(’figure’, facecolor = ’k’, edgecolor =’w’)mpl.rc(’axes’, prop_cycle = mpl.cycler(color=[(0.1, .5, .75),(0.5, .5, .75)]))x = np.linspace(0, 7, 1024)plt.plot(x, np.sin(x))plt.plot(x, np.cos(x))plt.show()

Matplotlib可視化之自定義顏色繪制精美統計圖

到此這篇關于Matplotlib可視化之自定義顏色繪制精美統計圖的文章就介紹到這了,更多相關Matplotlib繪制統計圖內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Matplotlib
相關文章:
主站蜘蛛池模板: 南京泽朗生物科技有限公司-液体饮料代加工_果汁饮料代加工_固体饮料代加工 | 天津云仓-天津仓储物流-天津云仓一件代发-顺东云仓 | 定制/定做冲锋衣厂家/公司-订做/订制冲锋衣价格/费用-北京圣达信 | 陶氏道康宁消泡剂_瓦克消泡剂_蓝星_海明斯德谦_广百进口消泡剂 | 槽钢冲孔机,槽钢三面冲,带钢冲孔机-山东兴田阳光智能装备股份有限公司 | 根系分析仪,大米外观品质检测仪,考种仪,藻类鉴定计数仪,叶面积仪,菌落计数仪,抑菌圈测量仪,抗生素效价测定仪,植物表型仪,冠层分析仪-杭州万深检测仪器网 | 液氮罐_液氮容器_自增压液氮罐_杜瓦瓶_班德液氮罐厂家 | 游泳池设计|设备|配件|药品|吸污机-东莞市太平洋康体设施有限公司 | IIS7站长之家-站长工具-爱网站请使用IIS7站长综合查询工具,中国站长【WWW.IIS7.COM】 | 三板富 | 专注于新三板的第一垂直服务平台 | 长沙印刷厂-包装印刷-画册印刷厂家-湖南省日大彩色印务有限公司 青州搬家公司电话_青州搬家公司哪家好「鸿喜」青州搬家 | 帽子厂家_帽子工厂_帽子定做_义乌帽厂_帽厂_制帽厂_帽子厂_浙江高普制帽厂 | 澳门精准正版免费大全,2025新澳门全年免费,新澳天天开奖免费资料大全最新,新澳2025今晚开奖资料,新澳马今天最快最新图库 | 高低温试验箱-模拟高低温试验箱订制-北京普桑达仪器科技有限公司【官网】 | 高压绝缘垫-红色配电房绝缘垫-绿色高压绝缘地毯-上海苏海电气 | 深圳宣传片制作-企业宣传视频制作-产品视频拍摄-产品动画制作-短视频拍摄制作公司 | 食药成分检测_调料配方还原_洗涤剂化学成分分析_饲料_百检信息科技有限公司 | 地磅-电子地磅维修-电子吊秤-汽车衡-无人值守系统-公路治超-鹰牌衡器 | 全自动真空上料机_粉末真空上料机_气动真空上料机-南京奥威环保科技设备有限公司 | 北京翻译公司_同传翻译_字幕翻译_合同翻译_英语陪同翻译_影视翻译_翻译盖章-译铭信息 | 赛默飞Thermo veritiproPCR仪|ProFlex3 x 32PCR系统|Countess3细胞计数仪|371|3111二氧化碳培养箱|Mirco17R|Mirco21R离心机|仟诺生物 | 河南不锈钢水箱_地埋水箱_镀锌板水箱_消防水箱厂家-河南联固供水设备有限公司 | 四川成都干燥设备_回转筒干燥机_脉冲除尘器_输送设备_热风炉_成都川工星科机电设备有限公司 | 保温杯,儿童婴童奶瓶,运动水壶「广告礼品杯定制厂家」超朗保温杯壶 | 台湾阳明固态继电器-奥托尼克斯光电传感器-接近开关-温控器-光纤传感器-编码器一级代理商江苏用之宜电气 | 碳化硅,氮化硅,冰晶石,绢云母,氟化铝,白刚玉,棕刚玉,石墨,铝粉,铁粉,金属硅粉,金属铝粉,氧化铝粉,硅微粉,蓝晶石,红柱石,莫来石,粉煤灰,三聚磷酸钠,六偏磷酸钠,硫酸镁-皓泉新材料 | SOUNDWELL 编码器|电位器|旋转编码器|可调电位器|编码开关厂家-广东升威电子制品有限公司 | 短信通106短信接口验证码接口群发平台_国际短信接口验证码接口群发平台-速度网络有限公司 | Safety light curtain|Belt Sway Switches|Pull Rope Switch|ultrasonic flaw detector-Shandong Zhuoxin Machinery Co., Ltd | 钣金加工厂家-钣金加工-佛山钣金厂-月汇好| 锂电叉车,电动叉车_厂家-山东博峻智能科技有限公司 | 管理会计网-PCMA初级管理会计,中级管理会计考试网站 | 斗式提升机_链式斗提机_带式斗提机厂家无锡市鸿诚输送机械有限公司 | 青岛侦探_青岛侦探事务所_青岛劝退小三_青岛婚外情取证-青岛王军侦探事务所 | 广东泵阀展|阀门展-广东国际泵管阀展览会| 机制砂选粉机_砂石选粉机厂家-盐城市助成粉磨科技有限公司 | 国标白水泥,高标号白水泥,白水泥厂家-淄博华雪建材有限公司 | 合肥白癜风医院_合肥治疗白癜风医院_合肥看白癜风医院哪家好_合肥华研白癜风医院 | 北京成考网-北京成人高考网| Brotu | 关注AI,Web3.0,VR/AR,GPT,元宇宙区块链数字产业 | 干培两用箱-细菌恒温培养箱-菲斯福仪器 |