网络编程
位置:首页>> 网络编程>> Python编程>> python中matplotlib的颜色以及形状实例详解

python中matplotlib的颜色以及形状实例详解

作者:Mortal71  发布时间:2021-06-30 23:04:35 

标签:python,matplotlib,颜色

绘制折线图

命令形如:

# 常用
plt.plot(x, y, linewidth = '1', label = "test", color=' red ', linestyle=':', marker='|')

# 所有可选参数
plt.plot(x,y,color,linestyle=,linewidth,marker,markeredgecolor,markeredgwidth,markerfacecolor,markersize,label)

plt.legend(loc='upper left')
plt.show()

主要参数详解:

线条形式(linestyle):

标记字符还可使用说明
‘-’“solid”实线
‘–’“dashed”破折线
‘-.’“dashdot”点划线
‘:’“dotted”虚线
’ ’‘none’无线条

标注形状(marker):

标记字符还可使用说明
‘.’point marker点标记
‘,’pixel marker像素标记(极小点)
‘o’circle marker实心圈标记
‘v’triangle_down marker倒三角标记
‘^’triangle_up marker上三角标记
&lsquo;<&rsquo;triangle_left marker左三角标记
&lsquo;>&rsquo;triangle_right marker右三角标记
&lsquo;1&rsquo;tri_down marker下花三角标记
&lsquo;2&rsquo;tri_up marker上花三角标记
&lsquo;3&rsquo;tri_left marker左花三角标记
&lsquo;4&rsquo;tri_right marker右花三角标记
&lsquo;s&rsquo;square marker实心方形标记
&lsquo;p&rsquo;pentagon marker实心五角标记
&lsquo;*&rsquo;star marker星形标记
&lsquo;h&rsquo;hexagon1 marker竖六边形标记
&lsquo;H&rsquo;hexagon2 marker横六边形标记
&lsquo;+&rsquo;plus marker十字标记
&lsquo;x&rsquo;x markerx标记
&lsquo;D&rsquo;diamond marker菱形标记
&lsquo;d&rsquo;thin_diamond marker受菱形标记
&lsquo;|&rsquo;vline marker垂直线标记
&lsquo;_&rsquo;hline marker水平线标记

颜色(color),可用十六进制形式,每两个十六进制数分别代表R、G、B分量,可用如下代码展示所有:

import matplotlib
for name, hex in matplotlib.colors.cnames.items():
   print(name, hex)

得所有支持颜色:

cnames = {
   'aliceblue':            '#F0F8FF',
   'antiquewhite':         '#FAEBD7',
   'aqua':                 '#00FFFF',
   'aquamarine':           '#7FFFD4',
   'azure':                '#F0FFFF',
   'beige':                '#F5F5DC',
   'bisque':               '#FFE4C4',
   'black':                '#000000',
   'blanchedalmond':       '#FFEBCD',
   'blue':                 '#0000FF',
   'blueviolet':           '#8A2BE2',
   'brown':                '#A52A2A',
   'burlywood':            '#DEB887',
   'cadetblue':            '#5F9EA0',
   'chartreuse':           '#7FFF00',
   'chocolate':            '#D2691E',
   'coral':                '#FF7F50',
   'cornflowerblue':       '#6495ED',
   'cornsilk':             '#FFF8DC',
   'crimson':              '#DC143C',
   'cyan':                 '#00FFFF',
   'darkblue':             '#00008B',
   'darkcyan':             '#008B8B',
   'darkgoldenrod':        '#B8860B',
   'darkgray':             '#A9A9A9',
   'darkgreen':            '#006400',
   'darkkhaki':            '#BDB76B',
   'darkmagenta':          '#8B008B',
   'darkolivegreen':       '#556B2F',
   'darkorange':           '#FF8C00',
   'darkorchid':           '#9932CC',
   'darkred':              '#8B0000',
   'darksalmon':           '#E9967A',
   'darkseagreen':         '#8FBC8F',
   'darkslateblue':        '#483D8B',
   'darkslategray':        '#2F4F4F',
   'darkturquoise':        '#00CED1',
   'darkviolet':           '#9400D3',
   'deeppink':             '#FF1493',
   'deepskyblue':          '#00BFFF',
   'dimgray':              '#696969',
   'dodgerblue':           '#1E90FF',
   'firebrick':            '#B22222',
   'floralwhite':          '#FFFAF0',
   'forestgreen':          '#228B22',
   'fuchsia':              '#FF00FF',
   'gainsboro':            '#DCDCDC',
   'ghostwhite':           '#F8F8FF',
   'gold':                 '#FFD700',
   'goldenrod':            '#DAA520',
   'gray':                 '#808080',
   'green':                '#008000',
   'greenyellow':          '#ADFF2F',
   'honeydew':             '#F0FFF0',
   'hotpink':              '#FF69B4',
   'indianred':            '#CD5C5C',
   'indigo':               '#4B0082',
   'ivory':                '#FFFFF0',
   'khaki':                '#F0E68C',
   'lavender':             '#E6E6FA',
   'lavenderblush':        '#FFF0F5',
   'lawngreen':            '#7CFC00',
   'lemonchiffon':         '#FFFACD',
   'lightblue':            '#ADD8E6',
   'lightcoral':           '#F08080',
   'lightcyan':            '#E0FFFF',
   'lightgoldenrodyellow': '#FAFAD2',
   'lightgreen':           '#90EE90',
   'lightgray':            '#D3D3D3',
   'lightpink':            '#FFB6C1',
   'lightsalmon':          '#FFA07A',
   'lightseagreen':        '#20B2AA',
   'lightskyblue':         '#87CEFA',
   'lightslategray':       '#778899',
   'lightsteelblue':       '#B0C4DE',
   'lightyellow':          '#FFFFE0',
   'lime':                 '#00FF00',
   'limegreen':            '#32CD32',
   'linen':                '#FAF0E6',
   'magenta':              '#FF00FF',
   'maroon':               '#800000',
   'mediumaquamarine':     '#66CDAA',
   'mediumblue':           '#0000CD',
   'mediumorchid':         '#BA55D3',
   'mediumpurple':         '#9370DB',
   'mediumseagreen':       '#3CB371',
   'mediumslateblue':      '#7B68EE',
   'mediumspringgreen':    '#00FA9A',
   'mediumturquoise':      '#48D1CC',
   'mediumvioletred':      '#C71585',
   'midnightblue':         '#191970',
   'mintcream':            '#F5FFFA',
   'mistyrose':            '#FFE4E1',
   'moccasin':             '#FFE4B5',
   'navajowhite':          '#FFDEAD',
   'navy':                 '#000080',
   'oldlace':              '#FDF5E6',
   'olive':                '#808000',
   'olivedrab':            '#6B8E23',
   'orange':               '#FFA500',
   'orangered':            '#FF4500',
   'orchid':               '#DA70D6',
   'palegoldenrod':        '#EEE8AA',
   'palegreen':            '#98FB98',
   'paleturquoise':        '#AFEEEE',
   'palevioletred':        '#DB7093',
   'papayawhip':           '#FFEFD5',
   'peachpuff':            '#FFDAB9',
   'peru':                 '#CD853F',
   'pink':                 '#FFC0CB',
   'plum':                 '#DDA0DD',
   'powderblue':           '#B0E0E6',
   'purple':               '#800080',
   'red':                  '#FF0000',
   'rosybrown':            '#BC8F8F',
   'royalblue':            '#4169E1',
   'saddlebrown':          '#8B4513',
   'salmon':               '#FA8072',
   'sandybrown':           '#FAA460',
   'seagreen':             '#2E8B57',
   'seashell':             '#FFF5EE',
   'sienna':               '#A0522D',
   'silver':               '#C0C0C0',
   'skyblue':              '#87CEEB',
   'slateblue':            '#6A5ACD',
   'slategray':            '#708090',
   'snow':                 '#FFFAFA',
   'springgreen':          '#00FF7F',
   'steelblue':            '#4682B4',
   'tan':                  '#D2B48C',
   'teal':                 '#008080',
   'thistle':              '#D8BFD8',
   'tomato':               '#FF6347',
   'turquoise':            '#40E0D0',
   'violet':               '#EE82EE',
   'wheat':                '#F5DEB3',
   'white':                '#FFFFFF',
   'whitesmoke':           '#F5F5F5',
   'yellow':               '#FFFF00',
   'yellowgreen':          '#9ACD32'}

可用如下代码展示具体颜色:

import matplotlib.pyplot as plt
import matplotlib.patches as patches
import matplotlib.colors as colors
import math

fig = plt.figure()
ax = fig.add_subplot(111)

ratio = 1.0 / 3.0
count = math.ceil(math.sqrt(len(colors.cnames)))
x_count = count * ratio
y_count = count / ratio
x = 0
y = 0
w = 1 / x_count
h = 1 / y_count

for c in colors.cnames:
   pos = (x / x_count, y / y_count)
   ax.add_patch(patches.Rectangle(pos, w, h, color=c))
   ax.annotate(c, xy=pos)
   if y >= y_count-1:
       x += 1
       y = 0
   else:
       y += 1

plt.show()

得下图

python中matplotlib的颜色以及形状实例详解

绘制柱形图

plot.bar(x,height,width=0.8,bottom=None,align='center',color,edgecolor)
参数说明
x表示在什么位置显示柱形图
height柱子高度
width每根柱子的宽度,可各不相同
bottom每根柱子的底部位置,可各不相同
align柱子的位置与x值的关系,可选center、edge两个参数,center表示柱子位于x值的中心位置,edge表示边缘位置
color柱子颜色
edgecolor柱子边缘的颜色

例:

plt.subplot(1,1,1)

x = np.array(["东区","西区","南区","北区"])
y = np.array([8566,6482,5335,7310])

plt.bar(x,y,width=0.5,align="center",label="任务量")

plt.title("全国各分区任务量",loc="center")

# 添加数据标签
for a,b in zip(x,y):
   plt.text(a,b,b,ha='center',va="bottom",fontsize=12,color="r")

plt.xlabel('分区')
plt.ylabel('任务量')

plt.legend()     #显示图例

#保存到本地
#plt.savefig("C:/Users/.../1.jpg")

python中matplotlib的颜色以及形状实例详解

簇状柱形图

plt.subplot(1,1,1)

x = np.array([1,2,3,4])
y1 = np.array([8566,6482,5335,7310])
y2 = np.array([4283,2667,3655,3241])

plt.bar(x,y1,width=0.3,label="任务量")
plt.bar(x+0.3,y2,width=0.3,label="完成量")   #x+0.3相当于完成量的每个柱子右移0.3

plt.title("全国各分区任务量",loc="center")

# 添加数据标签
for a,b in zip(x,y1):
   plt.text(a,b,b,ha='center',va="bottom",fontsize=12,color="blue")

for a,b in zip(x,y2):
   plt.text(a,b,b,ha='center',va="bottom",fontsize=12,color="g")

plt.xlabel('区域')
plt.ylabel('任务情况')

#设置x轴刻度值
plt.xticks(x+0.15,["东区","西区","南区","北区"])

plt.grid(False)
plt.legend()     #显示图例

python中matplotlib的颜色以及形状实例详解

堆积柱形图

plt.subplot(1,1,1)

x = np.array(["东区","西区","南区","北区"])
y1 = np.array([8566,6482,5335,7310])
y2 = np.array([4283,2667,3655,3241])

plt.bar(x,y1,width=0.3,label="任务量")
plt.bar(x,y2,width=0.3,label="完成量")  

plt.title("全国各分区任务量",loc="center")

# 添加数据标签
for a,b in zip(x,y1):
   plt.text(a,b,b,ha='center',va="bottom",fontsize=12,color="blue")

for a,b in zip(x,y2):
   plt.text(a,b,b,ha='center',va="bottom",fontsize=12,color="g")

plt.xlabel('区域')
plt.ylabel('任务情况')

plt.grid(False)

plt.legend(loc = "upper center",ncol=2)    

python中matplotlib的颜色以及形状实例详解

散点图

plt.scatter(x,y,s,c,marker,linewidths,edgecolors)
参数说明
(x,y)散点的位置
s每个点的面积,即散点的大小。若只有一个具体值时,则所有点的大小都一样。也可呈现多个值,这样就成了气泡图
c每个点的颜色,可多样
marker标记,同折线图中marker
linewidths散点线宽
edgecolors散点外轮廓的颜色

 

colors = y*10
area = y*100        #根据y值的大小生成不同形状

plt.scatter(x,y,c=colors,marker="o",s=area)

plt.title("销量关系图",loc="center")

# 添加数据标签
for a,b in zip(x,y):
   plt.text(a,b,b,ha='center',va="center",fontsize=10,color="white")

plt.xlabel('气温')
plt.ylabel('啤酒销量')

plt.grid(False)

python中matplotlib的颜色以及形状实例详解

附:matplotlib实现区域颜色填充

'''
学习python
'''
import matplotlib.pyplot as plt
import numpy as np

x= np.linspace(0,5*np.pi, 1000)

y1 = np.sin(x)
y2 = np.sin(2*x)

#plt.plot(x,y1)
#plt.plot(x,y2)

plt.fill(x,y1,'b',alpha=0.5)
plt.fill(x,y2,'r',alpha=0.3)

plt.fill_between(x,y1,y2,facecolor='green')
plt.grid(True)

plt.show()

#########################################################
plt.plot(x,y1,'b',alpha=0.5)
plt.plot(x,y2,'r',alpha=0.3)
#添加条件
#如果数据点比较少的情况下,会有缝隙出现,使用interpolate可以填充缝隙
plt.fill_between(x,y1,y2,where=y1>=y2,facecolor='green',interpolate=True)
plt.fill_between(x,y1,y2,where=y2>y1,facecolor='yellow',interpolate=True)
plt.grid(True)

plt.show()
###########################################################

n = 256
X = np.linspace(-np.pi, np.pi, n, endpoint=True)
Y = np.sin(2 * X)

plt.plot(X, Y + 1, color='blue', alpha=1.00)
plt.fill_between(X, 1, Y + 1, color='blue', alpha=.25)

plt.plot(X, Y - 1, color='blue', alpha=1.00)
plt.fill_between(X, -1, Y - 1, (Y - 1) > -1, color='blue', alpha=.25)
plt.fill_between(X, -1, Y - 1, (Y - 1) < -1, color='red', alpha=.25)

plt.xlim(-np.pi, np.pi)
plt.xticks(())
plt.ylim(-2.5, 2.5)
plt.yticks(())

总结 

来源:https://blog.csdn.net/weixin_43697287/article/details/88876680

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com