回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我们正在matplotlib上构建报告。每一页都有多个图表和一些文本。在</p>
<p>在报告数据中有100多个位置,每个位置都有一个密度。这个想法是在地图上绘制点,其中颜色(红色阴影)表示该位置的密度。在</p>
<p>但是,我不明白kwargs:c和cmap之间的联系轴向散射打电话,我也不明白颜色。标准化在此应用程序中。在</p>
<pre><code>import pandas as pd
import matplotlib
import numpy as np
from pandas import Series, DataFrame
import csv
from scipy import stats
import matplotlib.pyplot as plt
import random
import matplotlib.colors as colors
# Get the data and transform
data = pd.read_csv('logHistThis.csv')
data.drop('Unnamed: 0', axis=1, inplace=True)
dataMean = data['Density'].mean()
data = list(data['Density'])
# I was under the impresion that the data for the colormap
# had to be between 1 and 0 so did this:
aColorScale = []
def myColorScale(theData):
aColorScale = []
for x in theData:
this = x/100
aColorScale.<a href="https://www.cnpython.com/list/append" class="inner-link">append</a>(this)
return aColorScale
aColorScale = myColorScale(data)
estimated_mu, estimated_sigma = stats.norm.fit(data)
xmin = min(data)
xmax = max(data)
x = np.linspace(xmin, xmax, 100)
pdf = stats.norm.pdf(x, loc=estimated_mu, scale=estimated_sigma)
thisRangeMin = np.log(27)
thisRangeMax = np.log(35)
q = [np.random.choice(data, 40)]
z = [ np.random.randint(1, 50, size=40)]
s = 100 *q
colormap = 'Reds'
normalize =matplotlib.colors.Normalize(vmin=xmin, vmax=xmax)
#plt.scatter(x,y,z,s=5, cmap=colormap, norm=normalize, marker='*')
fig = plt.figure(figsize=(10, 5), frameon=False, edgecolor='000000', linewidth = 1)
rect0 = .05, .05, .4, .9
rect1 = .5, .05, .4, .9
# This works great
ax1 = fig.add_axes(rect0)#<-----------x2TopTenSummary
ax1.hist(data, bins=13, normed=True, color='c', alpha=0.05)
#ax1.fill_between(x, pdf, where=(), alpha=.2)
ax1.fill_between(x, pdf, where=((x < thisRangeMax) & ( x > thisRangeMin)), alpha=.2, label='City Range')
ax1.vlines(dataMean, 0, stats.norm.pdf(dataMean, loc=estimated_mu, scale=estimated_sigma), color='r')
ax1.plot(x, pdf, 'k')
# This does not work :
# It just gives blue dots
ax2= fig.add_axes(rect1)
ax2= fig.add_axes(rect1)
ax2.scatter(q,z, s=200, cmap= 'Reds',norm=matplotlib.colors.Normalize(vmin=min(aColorScale) , vmax=max(aColorScale)))
# Tried to set the color map in a variety of ways:
# When kwarg 'c' is set to the variable 'aColorScale' i get the error
plt.show()
plt.close()
</code></pre>
<p>所以我的问题是,我们如何将colormap合并到这种应用程序中呢?在</p>
<p>具有预定尺寸(A4或字母)的图形上的多个轴。
颜色决定是第三个变量z,(不是x或y)
颜色行列式是一个浮点数,其中0<;z<;8
电话是ax而不是plt</p>
<p>我不清楚文件中对申请的描述:</p>
<p><a href="https://matplotlib.org/api/_as_gen/matplotlib.axes.Axes.scatter.html" rel="nofollow noreferrer">axes.scatter</a>的文档
<a href="https://matplotlib.org/users/colormapnorms.html" rel="nofollow noreferrer">color.normalize</a>的文档</p>
<p>我见过很多例子,图中只有一把斧头,调用的是散开... 例如<a href="https://stackoverflow.com/questions/8202605/matplotlib-scatterplot-colour-as-a-function-of-a-third-variable">here</a></p>
<p>在我们的例子中,x,y是经度,latitude,变量是'data'一个0到8之间的浮动列表或数组。在</p>
<p>谢谢</p>