Hello,
This is an ArcMAP 10.4.1 question. Is it possible to symbolize using one value field; then color and size that symbol using another field? I am trying to display a set of surface geochem data. I would like to choose a different symbol for each rock type then color and size that symbol depending on its gold value. So far I am able to symbolize each rock type differently and size each symbol according to its gold value, but I am not able to choose different colors for the increasing gold values. I am using the multiple attributes function in symbology.
Thanks
Ryan
Solved! Go to Solution.
Once I resolve some issues I'm experiencing with my license server I will mimic some data and see how far I get.
OK, so I think it will be possible, but it will require some manual configuration:
I generated a random dataset with this structure:
The SoilValueClass is a classification of the SoilValues into 5 classes.
I used two field as Value fields (Soil and SoilValueClass):
I manually assigned the colors, since applying the ramp will assign blue to "igneous, 1" and red to the end "Soil, 5" which is not what you want. So I selected "igneous, 1", "metamorphic,1", etc up to "soil, 1" and assigned the blue color and for every "SoilValueClass" value a different color in the range of blue to red.
The Symbol Size was defined by the field SoilValues:
The legend is very, very, very long...
Nice work, how did you populate the "soilvalueclass" field? Is it possible to add a field and populate it in Arc or do I need to do that in an excel file?
You can use the FieldCalculator (Making simple field calculations—Help | ArcGIS for Desktop ) to fill the new classified field:
In this example I am classifying the Field "!SoilValues!" into 5 classes and my maximum value is 100:
( !SoilValues! - 1) // (100 / 5) + 1
Please note that "Python" is selected as Parser.
If you can share the range of values you have, I can adapt the formula for you.
That would be great. The ranges I am using are visible in the image I posted earlier.
Thank you very much
In case you are referring to these "Quantile" ranges:
... it would require a slightly different approach.
You could do this:
Select Python as Parser, activate the option "Show Codeblock"
Past the code below in the "Pre-Logic Script Code":
def Clfy(value):
try:
if value == 0:
return 0
elif value <= 14:
return 1
elif value <= 92:
return 2
else:
return 3
except:
return -1
and enter the expression:
Clfy( !SoilValues! )
... where "SoilValues" should be replaced by the name of your field with unclassified values.
Well, congrats, you're hired!
Thank you very much for your persistence and ArcMAP skills. Your help has been greatly appreciated.
Have a great day
You're welcome! Could you mark the post that answered your question as the "Correct Answer"?