我有以下数据(四个等长数组):
a = [1, 4, 5, 2, 8, 9, 4, 6, 1, 0, 6]
b = [4, 7, 8, 3, 0, 9, 6, 2, 3, 6, 7]
c = [9, 0, 7, 6, 5, 6, 3, 4, 1, 2, 2]
d = [La, Lb, Av, Ac, Av, By, Lh, By, Lg, Ac, Bt]
我正在制作数组 a、b、c 的 3d 图:
import pylab
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.scatter(a,b,c)
plt.show()
现在,我想使用名为“d”的数组为这些分散的点着色这样;如果d中对应的第'i'个元素值的第一个字母是'L',则将点着色为红色,如果它以'A'开头,则将其着色为绿色,如果它以'B'开头,则将其着色为蓝色。
所以,第一个点 (1,4,9) 应该是红色,第二个 (4,7,0) 也是红色,第三个 (5,8,7) 应该是绿色等等。
有可能吗?如果您有任何想法,请提供帮助:)
最佳答案
作为 scatter 的文档解释一下,你可以传递 c 参数:
c : color or sequence of color, optional, default
c can be a single color format string, or a sequence of color specifications of length N, or a sequence of N numbers to be mapped to colors using the cmap and norm specified via kwargs (see below). Note that c should not be a single numeric RGB or RGBA sequence because that is indistinguishable from an array of values to be colormapped. c can be a 2-D array in which the rows are RGB or RGBA, however.
有点像
use_colours = {"L": "red", "A": "green", "B": "blue"}
ax.scatter(a,b,c,c=[use_colours[x[0]] for x in d],s=50)
应该产生
关于Python matplotlib 散点图 : changing colour of data points based on given conditions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19139621/
我有一个例子://LoadtheVisualizationAPIandthepiechartpackage.google.load('visualization','1.0',{'packages':['corechart']});//SetacallbacktorunwhentheGoogleVisualizationAPIisloaded.google.setOnLoadCallback(drawChart1);//Callbackthatcreatesandpopulatesadatatable,//instantiatesthepiechart,passesinthedataa
实际上,我的需求很小,其中有一个散点图,其中包含点列表和下拉列表。当我从下拉列表中选择一个项目时,应该触发其相应的数据点点击。当我在图表上选择一个数据点时,必须执行一些操作并且下拉列表应该根据选择进行更新。我们有什么办法可以做到这一点吗?我试过firePointClick,事件未定义,我希望事件与手动点击发生时我们得到的事件相同,还有其他方法吗?或任何改进 最佳答案 它不是API的一部分,但可以使用名为firePointEvent的内部API函数来完成:chart.series[0].data[0].firePointEvent('
我想在散点图中的数据点周围、极值点和轴之间留出一点额外空间。Chart.jsdocumentation列出了据称常见的offset属性,这听起来和我想要的完全一样,但它似乎只适用于水平标记轴(代码片段的前半部分)。它对散点图(下半部分)没有任何作用。我是不是做错了什么,或者这只是不受支持?解决方法是什么?varoptions,ctx;options={type:'line',data:{labels:[0,1,2],datasets:[{data:[0,1,0]}]},options:{scales:{xAxes:[{offset:true}],yAxes:[{offset:true}
有谁知道是否可以使用GoogleVisualizationsGallery中的默认Google散点图来绘制一个散点图,该散点图既有一个仅包含点的系列,一个具有最佳拟合线的系列,并在此之上图表中的一组线表示限制。即+/-20%等我们需要的图表其实是一个ControlChart在图表上显示多个系列和每个系列的单独格式。即一些系列只有点其他系列有一条最适合的线。有人知道已经使用GoogleVisualizationAPI完成的控制图吗? 最佳答案 在使用googlevisualizationapi一段时间并在网上搜索后,我不得不说这里的答
在Chart.js2中,我生成了一个散点图,其中x坐标是Epoch时间戳,y坐标是整数。我想知道是否有一种方法可以格式化图表的x轴标签,以便日期以人类可读的格式显示。更新:目前我正在从以毫秒为单位的Unix时间戳构建我的图表。该原型(prototype)的其他部分使用Date类的toDateString方法格式化这些日期(例如FriAug52016)。 最佳答案 为此,您可以使用scales.xAxes选项中的ticks.userCallback,以便为每个xaxis刻度返回格式化日期。如果您使用的是momentjs附带的捆绑版本c
我是d3和nvd3的新手,想创建一个简单的散点图,就像example但带有ordinaly轴。所以y轴值是分类字符串。这是我认为我需要做的:varxfun=function(d){returnd.Pos}//simpleints,yfun=function(d){returnd.Title}//theordinalvaluesvarchart=nv.models.scatterChart().showDistX(true).showDistY(true).color(d3.scale.category10().range()).margin({top:30,right:20,botto
我已经构建了一个具有缩放/平移功能的d3.js散点图。您可以在此处查看完整内容(单击“在新窗口中打开”以查看完整内容):http://bl.ocks.org/129f64bfa2b0d48d27c9有几个我一直无法弄清楚的功能,如果有人能指出正确的方向,我会很乐意帮助它:我想对区域应用X/Y缩放/平移边界,这样您就不能将其拖动到特定点(例如零)以下。我还尝试过创建Googlemap风格的+/-缩放按钮,但没有成功。有什么想法吗?更不重要的是,还有几个领域我已经找到了解决方案,但它非常粗糙,所以如果您有更好的解决方案,请告诉我:我添加了一个“重置缩放”按钮,但它只是删除图表并在其位置生成
是否可以在nvd3.js中组合折线图和散点图,而无需像示例和代码中使用linePlusBarChart那样构建新模型?或者这是您可以组合图表类型的唯一方法? 最佳答案 看看这个fiddle,给你一些想法fiddle 关于javascript-nvd3中的线+散点图,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/13959156/
我正在尝试绘制散点图和柱状图的组合图表。我遇到散点图显示不正确的问题。放大和滚动后,这些点似乎“停止”在某个点。https://codepen.io/moosejaw/pen/QavGgR?editors=0011一定和boost模块有关吧?我试过启用和禁用它。boost:{//enabled:false//worksenabled:true//doesn'twork}我知道boost模块可以处理点数,但我对为什么它们是滚动/放置问题感到困惑。感谢您的宝贵时间。 最佳答案 此问题仅在图表反转时发生。这是github上报告的错误:ht
我正在使用这个例子来制作散点图:https://www.d3-graph-gallery.com/graph/boxplot_show_individual_points.html现在这个例子使用抖动来随机化点的x位置以用于演示目的,但我的目标是以这种方式制作这些点,这样它们就不会发生碰撞并且在发生碰撞时位于同一行。我正在尝试做的(视觉上的)最好的例子是某种蜂群,其中数据像这个fiddle一样表示:https://jsfiddle.net/n444k759/4/第一个例子的片段://setthedimensionsandmarginsofthegraphvarmargin={top:1